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

Crashes on startup on Gentoo under Wayland #233

Open
vpzomtrrfrt opened this issue Dec 22, 2024 · 3 comments
Open

Crashes on startup on Gentoo under Wayland #233

vpzomtrrfrt opened this issue Dec 22, 2024 · 3 comments

Comments

@vpzomtrrfrt
Copy link

Attempting to run Aegisub on Gentoo under Wayland currently segfaults.

#0  VideoDisplay::ToolIsType (this=0x0, type=...) at ../src/video_display.cpp:431
#1  0x0000555555a1aae9 in (anonymous namespace)::Toolbar::OnIdle (this=0x555555e4d4b0) at ../src/toolbar.cpp:83
#2  0x00007ffff6e0e0d2 in wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) () at /usr/lib64/libwx_baseu-3.2-gtk3.so.0
#3  0x00007ffff6e0e57e in wxEvtHandler::SearchDynamicEventTable(wxEvent&) () at /usr/lib64/libwx_baseu-3.2-gtk3.so.0
#4  0x00007ffff6e0e8e4 in wxEvtHandler::TryHereOnly(wxEvent&) () at /usr/lib64/libwx_baseu-3.2-gtk3.so.0
#5  0x00007ffff6e0e98e in wxEvtHandler::ProcessEventLocally(wxEvent&) () at /usr/lib64/libwx_baseu-3.2-gtk3.so.0
#6  0x00007ffff6e0ea91 in wxEvtHandler::ProcessEvent(wxEvent&) () at /usr/lib64/libwx_baseu-3.2-gtk3.so.0
#7  0x00007ffff6e0fc1b in wxEvtHandler::SafelyProcessEvent(wxEvent&) () at /usr/lib64/libwx_baseu-3.2-gtk3.so.0
#8  0x00007ffff75109e8 in wxWindowBase::SendIdleEvents(wxIdleEvent&) () at /usr/lib64/libwx_gtk3u_core-3.2-gtk3.so.0
#9  0x00007ffff75109c0 in wxWindowBase::SendIdleEvents(wxIdleEvent&) () at /usr/lib64/libwx_gtk3u_core-3.2-gtk3.so.0
#10 0x00007ffff75109c0 in wxWindowBase::SendIdleEvents(wxIdleEvent&) () at /usr/lib64/libwx_gtk3u_core-3.2-gtk3.so.0
#11 0x00007ffff75109c0 in wxWindowBase::SendIdleEvents(wxIdleEvent&) () at /usr/lib64/libwx_gtk3u_core-3.2-gtk3.so.0
#12 0x00007ffff737b189 in wxFrame::SendIdleEvents(wxIdleEvent&) () at /usr/lib64/libwx_gtk3u_core-3.2-gtk3.so.0
#13 0x00007ffff73dcbcd in wxAppBase::ProcessIdle() () at /usr/lib64/libwx_gtk3u_core-3.2-gtk3.so.0
#14 0x00007ffff72e0061 in wxApp::DoIdle() () at /usr/lib64/libwx_gtk3u_core-3.2-gtk3.so.0
#15 0x00007ffff72e0137 in ??? () at /usr/lib64/libwx_gtk3u_core-3.2-gtk3.so.0
#16 0x00007ffff2e9dce2 in ??? () at /usr/lib64/libglib-2.0.so.0
#17 0x00007ffff2ea1077 in ??? () at /usr/lib64/libglib-2.0.so.0
#18 0x00007ffff2ea197f in g_main_loop_run () at /usr/lib64/libglib-2.0.so.0
#19 0x00007ffff35537e2 in gtk_dialog_run () at /usr/lib64/libgtk-3.so.0
#20 0x00007ffff738be1c in wxMessageDialog::ShowModal() () at /usr/lib64/libwx_gtk3u_core-3.2-gtk3.so.0
#21 0x00007ffff72c2022 in wxMessageBox(wxString const&, wxString const&, long, wxWindow*, int, int) () at /usr/lib64/libwx_gtk3u_core-3.2-gtk3.so.0
#22 0x00007ffff73dc771 in wxGUIAppTraitsBase::SafeMessageBox(wxString const&, wxString const&) () at /usr/lib64/libwx_gtk3u_core-3.2-gtk3.so.0
#23 0x00007ffff6d1c112 in wxSafeShowMessage(wxString const&, wxString const&) () at /usr/lib64/libwx_baseu-3.2-gtk3.so.0
#24 0x00007ffff7e246c1 in ??? () at /usr/lib64/libwx_gtk3u_gl-3.2-gtk3.so.0
#25 0x00007ffff7e24a8a in wxGLCanvas::Create(wxWindow*, int, wxPoint const&, wxSize const&, long, wxString const&, int const*, wxPalette const&) ()
    at /usr/lib64/libwx_gtk3u_gl-3.2-gtk3.so.0
#26 0x00007ffff7e24bab in wxGLCanvas::wxGLCanvas(wxWindow*, int, int const*, wxPoint const&, wxSize const&, long, wxString const&, wxPalette const&) ()
    at /usr/lib64/libwx_gtk3u_gl-3.2-gtk3.so.0
#27 0x0000555555a33ea1 in VideoDisplay::VideoDisplay
    (this=this@entry=0x555555f4a7a0, toolbar=toolbar@entry=0x555555fe7670, freeSize=freeSize@entry=false, zoomBox=zoomBox@entry=0x555555fed060, parent=parent@entry=0x555555ed3b40, c=c@entry=0x555556087c20) at ../src/video_display.cpp:94
#28 0x0000555555a2d747 in VideoBox::VideoBox (this=this@entry=0x555555ed3b40, parent=parent@entry=0x5555561e39a0, isDetached=isDetached@entry=false, context=0x555556087c20)
    at ../src/video_box.cpp:75
#29 0x0000555555908eae in FrameMain::InitContents (this=this@entry=0x555556069fd0) at /usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/unique_ptr.h:193
#30 0x000055555590a7d5 in FrameMain::FrameMain (this=this@entry=0x555556069fd0) at ../src/frame_main.cpp:145
#31 0x00005555559292a8 in AegisubApp::NewProjectContext (this=this@entry=0x555555e0c580) at ../src/main.cpp:345
#32 0x000055555592b373 in AegisubApp::OnInit (this=<optimized out>) at ../src/main.cpp:268
#33 0x00007ffff6d11cf2 in wxEntry(int&, wchar_t**) () at /usr/lib64/libwx_baseu-3.2-gtk3.so.0
#34 0x00005555556aa566 in main (argc=<optimized out>, argv=<optimized out>) at ../src/main.cpp:80

Removing the contents of Toolbar::OnIdle avoids that crash, and shows a message from wxWidgets:

This program wasn't compiled with EGL support required under Wayland, either
install EGL libraries and rebuild or run it under X11 backend by setting
environment variable GDK_BACKEND=x11 before starting your program.

Gentoo currently builds wxGTK without EGL support, and recommends that programs detect this and fall back to X11, as seen in visualboyadvance-m/visualboyadvance-m@aca206a

@arch1t3cht
Copy link
Member

Do you know if this is a regression or an issue with all versions of Aegisub? Does this also happen on 3.2.2 or Aegisub/Aegisub master (if you can get either of those to compile) or on arch1t3cht/Aegisub?

@vpzomtrrfrt
Copy link
Author

  • 3.2.2: can't compile ("Aegisub requires that boost be built with ICU support." from configure)
  • Aegisub/Aegisub master: same as 3.2.2
  • arch1t3cht/Aegisub feature: Also segfaults

@EL-File4138
Copy link
Contributor

EL-File4138 commented Dec 23, 2024

I think it's a general problem with Wayland, occurring on all current forks. I currently use a wrapper to force it to run under XWayland. Even if the program did run under pure Wayland (like with AppImage), various problems persist, such as no IME float window, etc.
I think the Wayland problem would be a rather major overhaul of codebases, and possibly something that cannot be easily fixed.

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

No branches or pull requests

3 participants