Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mac Client freezes when launching new tourney #4920

Closed
manbradcalf opened this issue May 9, 2018 · 17 comments
Closed

Mac Client freezes when launching new tourney #4920

manbradcalf opened this issue May 9, 2018 · 17 comments
Labels
FAQ Instructions to fix problems linux / macos

Comments

@manbradcalf
Copy link

manbradcalf commented May 9, 2018

Env:
Mac OS 10.13.3
XMage version 1.4.29 v4

Steps
1 - Launch client & server
2 - choose to launch local server
3 - select new tourney
4 - try to change one of the boosters
5 - note freeze

@JayDi85
Copy link
Member

JayDi85 commented May 10, 2018

Can you see "search country window" on connection dialog? If you can see it then check where exactly is that window popup on your mac (behind or in front of connection dialog)?

shot_180510_115417

@manbradcalf
Copy link
Author

screen shot 2018-05-10 at 12 18 04 pm

This is what I see when I tap the magnifying glass. When I drag the list over the dialog, it overlaps in front of the dialog like it does in your screenshot @JayDi85

@JayDi85
Copy link
Member

JayDi85 commented May 10, 2018

OK, then try to search client logs and report it here (after your client "freeze" on set selection). It's can contain errors. That's logs can found in black window or in ..\xmage\mage-client\mageclient.log (report last page of logs).

@manbradcalf
Copy link
Author

mageclient.log @JayDi85

@JayDi85
Copy link
Member

JayDi85 commented May 10, 2018

It's old logs (from February 22), maybe you are shown file from wrong folder (check your link/folder to start up launcher/client). Delete mageclient.log file, restart xmage, try to create new match until freeze, close xmage and report logs here.

@manbradcalf
Copy link
Author

My bad! Wrong path

I just took a screencast of the error happening in real time. It's strange, it seems nothing relevant is being logged. Screencast below:

https://streamable.com/pgfxb

Here's the log from that session:

mageclient.log

Also, for what it's worth, I'm now running High Sierra 10.13.4, I got around to updating today

@chrislegault
Copy link

I am experiencing this in the current version on Mojave as well. I can start up the server locally and log into it. But as soon as I try to change any drop down item (booster packs in tourney, game types, etc...) the client freezes up and is unresponsive. And the logs have nothing in them that is useful. All that is in it is:

INFO  2019-08-03 10:37:34,208 Starting MAGE client version 1.4.37V4 (build: 2019-07-13 15:57)                            =>[main] MageFrame.main 
INFO  2019-08-03 10:37:34,210 Logging level: INFO                                                                        =>[main] MageFrame.main 
INFO  2019-08-03 10:37:36,477 Loading database...                                                                        =>[AWT-EventQueue-0] RepositoryUtil.bootstrapLocalDb 
INFO  2019-08-03 10:37:37,002 Loading symbols...                                                                         =>[AWT-EventQueue-0] ManaSymbols.loadImages 
INFO  2019-08-03 10:37:37,932 Loading plugins...                                                                         =>[AWT-EventQueue-0] Plugins.loadPlugins 
INFO  2019-08-03 10:37:37,978 [Game counter plugin, version 0.1] has been loaded.                                        =>[AWT-EventQueue-0] CounterPluginImpl.newPlugin 
INFO  2019-08-03 10:37:37,989 [Card plugin, version 0.7] has been loaded.                                                =>[AWT-EventQueue-0] CardPluginImpl.newPlugin 
INFO  2019-08-03 10:37:37,992 [Theme plugin, version 0.5] has been loaded.                                               =>[AWT-EventQueue-0] ThemePluginImpl.newPlugin 
INFO  2019-08-03 10:37:37,993 Done.                                                                                      =>[AWT-EventQueue-0] Plugins.loadPlugins 
INFO  2019-08-03 10:37:39,241 Client start up time: 5 seconds                                                            =>[AWT-EventQueue-0] MageFrame.lambda$new$2 
INFO  2019-08-03 10:37:42,093 Connect: connecting to server localhost:17171                                              =>[SwingWorker-pool-5-thread-4] SessionImpl$5.work 
INFO  2019-08-03 10:37:42,349 Connect: DONE                                                                              =>[SwingWorker-pool-5-thread-4] SessionImpl$5.work 
INFO  2019-08-03 10:37:42,350 Logging: as username astraldragon to server localhost:17171                                =>[SwingWorker-pool-5-thread-5] SessionImpl$4.work 
INFO  2019-08-03 10:37:42,398 Logging: DONE                                                                              =>[SwingWorker-pool-5-thread-5] SessionImpl$4.work 

@JayDi85
Copy link
Member

JayDi85 commented Aug 3, 2019

There are possible some text assistance or whatever third party software on MacOs (app freeze on text field enter -- that's third party software try to create quick search buttons or whatever). I still don't know the reason. Someone report in #5130 about Contexts app. You can find that software and disable or add java app to ignore list.

@chrislegault
Copy link

Hmmmm. I definitely don't use Contexts. I killed all my apps and found out which one is creating the issue. It seems to be Magnet which causes issues. So seems to be window managers/organizers that's messing stuff up.

@manbradcalf
Copy link
Author

Ah! Good to know. I use magnet as well. I'm assuming that was the root of my issue.

@Alex-Vasile
Copy link
Contributor

Okay, more findings on this. It's caused by some interaction between window resizing apps (at the very least) and something inside the MageFrame object.

  • The "Connect to Server" dialog on it's own will freeze the UI
  • The "About" dialog does not freeze the UI

Looking at the "About" dialog, the big difference about it is that has the following line in it's constructor this.modal = false;. If I set the "About" dialog to also be modal, then the "About" dialog suddenly starts freezing the UI when the window is resized.

@JayDi85
Copy link
Member

JayDi85 commented Jun 1, 2022

XMage uses custom code to simulate modal dialogs -- see startModal() for related code.

Also you can run client app with -debug param to enable debug menu and run render and popup test tools:

shot_220602_000702
shot_220602_000942

@Alex-Vasile
Copy link
Contributor

Updating Java does not solve this issue. I have tried compiling it targeting Java 18 (not 1.8, 18) and running it with Java 18 and the issue is still there.

Strange it is a little better, on 1.8 when it freezes it also stops all haptic feedback on the device. Under Java 18 the feedback still works but the application still freezes.

@Alex-Vasile
Copy link
Contributor

It gets weirder...
If all modal windows are closed, XMage is tiled to take up half the screen, then you can open the connection dialog (or similar) and start re-tiling it as you please without it freezing. But the moment you try to open another window which has been set to modal, the application freezes.

@JayDi85
Copy link
Member

JayDi85 commented Jun 9, 2024

Possible fix for old freeze problems with m1+ macs. Some people reported that it work: #12431 (comment)

@JayDi85
Copy link
Member

JayDi85 commented Jun 15, 2024

Added another experimental fix 2 for macos here: #12431 (comment)

JayDi85 added a commit that referenced this issue Sep 7, 2024
- GUI: added non-blocking UI to almost all app and game dialogs;
- GUI: it allows to switch between UI dialogs and use any UI elements at any moment;
- GUI: it allows to use chat, card popup, battlefield, concede and other features while choosing (related to #12670);
- GUI: it allows to download images while playing (related to #4160, not fully tested);
- GUI: enabled by default, can be disabled by java option: -Dxmage.guiModalMode=true
- connection: auto-connect will be visible in main menu on startup;
- connection: removed some unused features (auto-connect by command line);
- connection: added <ESC> button to close connection dialog;
- download: added background images download (see non-blocking UI);
- download: improved cancel stability and fixes that it can't stop preparing/downloading process in some use cases;
- app: fixed freezes on macOS systems in some use cases (related to #12431, #11292, #9300, #4920);
@JayDi85
Copy link
Member

JayDi85 commented Sep 9, 2024

Original problem was in wrong implementation of modal windows (xmage code for system events processing). Not actual anymore with non-blocking UI in last release #12825

@JayDi85 JayDi85 closed this as completed Sep 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
FAQ Instructions to fix problems linux / macos
Projects
None yet
Development

No branches or pull requests

4 participants