Bug#1065709: doomsday: segfault in _XFlush() when Qt is using native Wayland
Simon McVittie
smcv at debian.org
Sat Mar 9 11:06:46 GMT 2024
Package: doomsday
Version: 2.3.1+ds1-1+b2
Severity: important
In a GNOME Wayland session, with qtwayland5 installed:
$ doomsday
QSocketNotifier: Can only be used with threads started with QThread
[1] 381459 segmentation fault (core dumped) doomsday
Backtrace:
#0 0x00007f9dc2c3ee83 in require_socket (dpy=<optimized out>) at ../../src/xcb_io.c:70
#1 _XFlush (dpy=0x55af92e13230) at ../../src/xcb_io.c:606
#2 0x00007f9dc2c41b3d in _XGetRequest (dpy=dpy at entry=0x55af92e13230, type=type at entry=98 'b', len=len at entry=8)
at ../../src/XlibInt.c:1787
#3 0x00007f9dc2c34a57 in XQueryExtension
(dpy=dpy at entry=0x55af92e13230, name=name at entry=0x7f9dc2bf9128 <XRRExtensionName> "RANDR", major_opcode=major_opcode at entry=0x7fffc208bde4, first_event=first_event at entry=0x7fffc208bde8, first_error=first_error at entry=0x7fffc208bdec)
at ../../src/QuExt.c:49
#4 0x00007f9dc2c27b16 in XInitExtension
(dpy=dpy at entry=0x55af92e13230, name=name at entry=0x7f9dc2bf9128 <XRRExtensionName> "RANDR")
at ../../src/InitExt.c:59
#5 0x00007f9dc42ecc9b in XextAddDisplay
(extinfo=extinfo at entry=0x7f9dc2bf91b0 <XRRExtensionInfo>, dpy=dpy at entry=0x55af92e13230, ext_name=ext_name at entry=0x7f9dc2bf9128 <XRRExtensionName> "RANDR", hooks=hooks at entry=0x7f9dc2bf9140 <rr_extension_hooks>, nevents=nevents at entry=2, data=data at entry=0x0) at ../../src/extutil.c:110
#6 0x00007f9dc2bef860 in XRRFindDisplay (dpy=dpy at entry=0x55af92e13230) at ../../src/Xrandr.c:295
#7 0x00007f9dc2beffc0 in XRRFindDisplay (dpy=0x55af92e13230) at ../../src/Xrandr.c:361
#8 XRRQueryExtension (dpy=0x55af92e13230, event_base_return=0x7fffc208bee8, error_base_return=0x7fffc208bee8)
at ../../src/Xrandr.c:352
#9 0x00007f9dc5223ae4 in de::internal::RRInfo::RRInfo() (this=0x7fffc208bf70)
at ./doomsday/sdk/libgui/src/displaymode_x11.cpp:63
#10 0x00007f9dc522302d in DisplayMode_Native_Init() () at ./doomsday/sdk/libgui/src/displaymode_x11.cpp:188
#11 0x00007f9dc51b7d11 in DisplayMode_Init() () at ./doomsday/sdk/libgui/src/displaymode.cpp:195
#12 0x000055af91335b1d in ClientApp::initialize() (this=0x7fffc208c160)
at ./doomsday/apps/client/src/clientapp.cpp:628
#13 0x000055af9131875d in main(int, char**) (argc=<optimized out>, argv=0x7fffc208c388)
at ./doomsday/apps/client/src/main_client.cpp:109
It looks as though doomsday is mixing Qt, SDL and direct use of X11.
If it's going to do this, then it should either force both Qt and SDL to
use X11 too, or allow one of the GUI libraries to auto-select a backend
and force the other one to follow that decision, then conditionalize
its direct use of X11 so it's only done if the GUI library has actually
initialized X11.
Workaround:
$ SDL_VIDEODRIVER=x11 QT_QPA_PLATFORM=xcb doomsday
gets further into its startup.
-- System Information:
Debian Release: trixie/sid
APT prefers unstable-debug
APT policy: (500, 'unstable-debug'), (500, 'testing-debug'), (500, 'stable-security'), (500, 'oldstable-security'), (500, 'buildd-unstable'), (500, 'unstable'), (500, 'testing'), (500, 'stable'), (500, 'oldstable'), (1, 'experimental-debug'), (1, 'buildd-experimental'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386, arm64
Kernel: Linux 6.7.7-amd64 (SMP w/4 CPU threads; PREEMPT)
Locale: LANG=en_GB.utf8, LC_CTYPE=en_GB.utf8 (charmap=UTF-8), LANGUAGE=en_GB:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages doomsday depends on:
ii doomsday-common 2.3.1+ds1-1+b2
ii doomsday-data 2.3.1+ds1-1
ii libc6 2.37-15.1
ii libgcc-s1 14-20240303-1
ii libqt5core5t64 [libqt5core5a] 5.15.10+dfsg-7.2
ii libqt5gui5t64 [libqt5gui5] 5.15.10+dfsg-7.2
ii libqt5network5t64 [libqt5network5] 5.15.10+dfsg-7.2
ii libqt5widgets5t64 [libqt5widgets5] 5.15.10+dfsg-7.2
ii libsdl2-2.0-0 2.30.1+dfsg-1
ii libsdl2-mixer-2.0-0 2.8.0+dfsg-1
ii libstdc++6 14-20240303-1
Versions of packages doomsday recommends:
ii fluid-soundfont-gm 3.1-5.3
doomsday suggests no packages.
-- debconf-show failed
More information about the Pkg-games-devel
mailing list