-
-
Notifications
You must be signed in to change notification settings - Fork 2.2k
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
Application freezes when opening a new window from a menu item click (might be in AOT builds only?) #16840
Comments
I'm encountering the same issue on my PC as well as on several of my users' PCs. The problem is intermittent and not easily reproducible—it occurs roughly 12 times out of 100 attempts. I just tested this manually using Avalonia 11.0.10, and the issue exists in version 11.2.0-beta1 as well. In my case, the problem arises when switching from a var window = new MainWindow();
window.Show();
window.Focus();
var appLifetime = Application.Current?.ApplicationLifetime as IClassicDesktopStyleApplicationLifetime;
var old = appLifetime!.MainWindow;
appLifetime.MainWindow = window;
old?.Close(); |
I've managed to simplify the repro scenario - all that seems to be needed to cause the freeze is to open and close windows repeatedly (which is similar to what genment posted above). There's no need to have a MenuItem at all. I have a thread that keeps opening a new blank window every 20ms, and then every window closes 100ms after being opened. Haven't been able to find any way to prevent the freeze from happening, unfortunately. I've updated the repo above - this code is enough to reproduce the freeze in AOT builds:
|
Please note that the window doesn't have to open and close so quickly; the low time delay is used only to reproduce the freezing issue more quickly. If you open and close windows like a typical user of the software, it will eventually freeze at some point. |
I can confirm I’m seeing the same issue when restoring a window that was minimized to the tray. AOT build on the latest beta. |
Describe the bug
I've been getting some freezes with Avalonia 11.1.3 on Windows 11.
Doesn't seem to be new to 11.1.3 though, older versions of 11.0.x seemed to have the same problem, too. (and 11.2.0-beta1 seems to be the same, too)
Managed to reduce this down to a pretty simple scenario. The window contains a "Test" menu item, which contains a "Open window" item in its submenu (which opens a new blank window when clicked). Sometimes, clicking on the menu item opens the new window and then freezes the application.
This freeze only seems to occur with AOT builds, I'm not sure why - it could just be timing-related/luck.
The same code built without AOT never seems to reproduce the freeze on my end.
To Reproduce
A repro is available here: https://github.com/SourMesen/AvaloniaFreeze/
Someone else also tested this repro, and it freezes on their end, too (on Windows 10). So at the very least it doesn't seem to only happen on my PC.
There are 2 executables in the "binaries" folder in the repository, one is the AOT build, the other is the regular JIT build (there's also a small "build.cmd" script to build both the aot & jit builds)
The app is setup to fake a click on the "Open window" menu item whenever a key is pressed.
This is done by opening the "Test" menu's submenu (via code) and faking a click on the menu item. This makes it easy to reproduce the freeze by just holding a key down.
It's also possible to get it to freeze by manually clicking on the "Open window" menu item, closing the new window manually, and repeating the steps, but it can take a little while to trigger the freeze this way.
When I open the AOT build and hold any key down (e.g the "A" key), the application starts opening and closing a new blank window repeatedly, and freezes within a few seconds (on my end)
On the JIT build, doing the exact same steps never seems to freeze, even if I hold the key down for a minute or more.
Expected behavior
No response
Avalonia version
11.1.3
OS
Windows
Additional context
This is the call stack it freezes on:
There's also this other thread that seems to be Avalonia:
The text was updated successfully, but these errors were encountered: