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

[Linux with Wayland] Application crashes on NativeWindow::maximize() without connected screen #3505

Open
itlancer opened this issue Oct 4, 2024 · 0 comments
Labels

Comments

@itlancer
Copy link

itlancer commented Oct 4, 2024

Problem Description

NativeWindow::maximize() call without connected screen cause application crash for Linux with Wayland window manager.
If AIR application for any reason will be launched without connected display (autoupdate in inactivity state or launch as a service/watchdog for example) - you will get this issue.

Tested with multiple AIR 51 versions, even with latest AIR 51.1.1.5 with multiple different Linux x86_64 devices, different OS versions and different applications.
Tested with multiple Ubuntu x86_64 22.04.4 LTS and Ubuntu x86_64 24.04.1 LTS devices with Wayland window manager.
Same issue in all cases.
There is no such issue with X11 window manager (but there is another issue #3498).
There is no such issue with other platforms.
There is no such issue with non-AIR applications.

Related issues:
#3498
#3481
#3328
#3239
#3066
#2534
#2497
#2241
#1669
#1425
#1123
#365
airsdk/Adobe-Scout#6

Steps to Reproduce

Notice: you must use Linux x86_64 physical device with Wayland window manager (not X11!) with connected display (monitor). Better to use Ubuntu 24.04 with Wayland window manager.

  1. Build application with code below for Linux x86_64 platform.
  2. Launch application with sleep delay via Terminal.
    You should start command execution and immediately go to the next step:
    sleep 10 && ./linux_wayland_nativewindow_maximize_wo_display_crash
  3. Disconnect display (monitor) from Linux x86_64 device. Better to unplug HDMI cable (video output) from Linux x86_64 device.
  4. Wait 10-15 seconds.
  5. Connect display (monitor) to Linux x86_64 device again. Better to plug in HDMI cable to Linux x86_64 device.

Application sample with sources and crash log attached.
linux_wayland_nativewindow_maximize_wo_display_crash.zip

package {
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.display.NativeWindow;
	
	public class LinuxWaylandNativeWindowMaximizeWithoutDisplayCrash extends Sprite {
		
		public function LinuxWaylandNativeWindowMaximizeWithoutDisplayCrash() {
			addEventListener(Event.ADDED_TO_STAGE, addedToStage);
		}
		
		private function addedToStage(e:Event):void {
			removeEventListener(Event.ADDED_TO_STAGE, addedToStage);
			
			var window:NativeWindow = stage.nativeWindow;
			window.maximize();
		}
	}
}

Actual Result:
Application crash.

/home/username/Downloads/linux_wayland_nativewindow_maximize_wo_display_crash/Adobe AIR/Versions/1.0/libCore.so(+0x5ee27c) [0x78693d7ee27c]
/home/username/Downloads/linux_wayland_nativewindow_maximize_wo_display_crash/Adobe AIR/Versions/1.0/libCore.so(+0x5db33c) [0x78693d7db33c]
/lib/x86_64-linux-gnu/libc.so.6(+0x42520) [0x78693f842520]
/home/username/Downloads/linux_wayland_nativewindow_maximize_wo_display_crash/Adobe AIR/Versions/1.0/libCore.so(+0x61feb4) [0x78693d81feb4]
/home/username/Downloads/linux_wayland_nativewindow_maximize_wo_display_crash/Adobe AIR/Versions/1.0/libCore.so(+0x61f534) [0x78693d81f534]
/home/username/Downloads/linux_wayland_nativewindow_maximize_wo_display_crash/Adobe AIR/Versions/1.0/libCore.so(+0x61f776) [0x78693d81f776]
/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0(+0x1434e7) [0x7869401434e7]
/lib/x86_64-linux-gnu/libgobject-2.0.so.0(g_closure_invoke+0x16f) [0x78694053dd2f]
/lib/x86_64-linux-gnu/libgobject-2.0.so.0(+0x30c36) [0x786940559c36]
/lib/x86_64-linux-gnu/libgobject-2.0.so.0(g_signal_emit_valist+0xbb6) [0x78694055b026]
/lib/x86_64-linux-gnu/libgobject-2.0.so.0(g_signal_emit+0x93) [0x78694055b863]
/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0(+0x26f024) [0x78694026f024]
/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0(gtk_main_do_event+0x54b) [0x7869401428cb]
/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0(+0x6717b) [0x78693fba617b]
/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_dispatch+0x26b) [0x78693ff1bd3b]
/lib/x86_64-linux-gnu/libglib-2.0.so.0(+0xab2b8) [0x78693ff712b8]
/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_iteration+0x33) [0x78693ff193e3]
/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0(gtk_main_iteration_do+0x21) [0x786940140601]
/home/username/Downloads/linux_wayland_nativewindow_maximize_wo_display_crash/Adobe AIR/Versions/1.0/libCore.so(+0x61a6fa) [0x78693d81a6fa]
/home/username/Downloads/linux_wayland_nativewindow_maximize_wo_display_crash/Adobe AIR/Versions/1.0/libCore.so(+0x61aada) [0x78693d81aada]
/home/username/Downloads/linux_wayland_nativewindow_maximize_wo_display_crash/Adobe AIR/Versions/1.0/libCore.so(+0x61b24f) [0x78693d81b24f]
/home/username/Downloads/linux_wayland_nativewindow_maximize_wo_display_crash/Adobe AIR/Versions/1.0/libCore.so(+0x83e531) [0x78693da3e531]
/home/username/Downloads/linux_wayland_nativewindow_maximize_wo_display_crash/Adobe AIR/Versions/1.0/libCore.so(+0x82b99d) [0x78693da2b99d]
/home/username/Downloads/linux_wayland_nativewindow_maximize_wo_display_crash/Adobe AIR/Versions/1.0/libCore.so(+0x82ba28) [0x78693da2ba28]
[0x340f85aa233b]

Sometimes (not always) you can see Scout session started but it will be "empty" cause it will be stopped immidiately.

Expected Result:
Application works without crashes.

Known Workarounds

none
*do not call NativeWindow::maximize() without connected display

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant