Bug 2018740 - x2goclient segfaults during connect
Summary: x2goclient segfaults during connect
Keywords:
Status: CLOSED EOL
Alias: None
Product: Fedora
Classification: Fedora
Component: x2goclient
Version: 35
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Orion Poplawski
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2021-10-30 19:11 UTC by Georg Sauthoff
Modified: 2022-12-13 15:43 UTC (History)
1 user (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2022-12-13 15:43:56 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Georg Sauthoff 2021-10-30 19:11:37 UTC
Description of problem:
I installed x2go on 2 Fedora 33 hosts. The first attempt to connect to the other host fails, i.e. x2goclient yields a segmentation fault.


Version-Release number of selected component (if applicable):
x2goclient-4.1.2.2-3.fc33.x86_64

How reproducible:
always

Steps to Reproduce:
1. install x2goclient on host A
2. install x2goserver on host B
3. start `x2goclient` on host A, create a simple session for host B (i.e. configure /usr/bin/xterm as simple program to launch remotely, disable audio/printer forwarding) and finally connect

Actual results:
$ x2goclient
QSocketNotifier: Can only be used with threads started with QThread
x2go-INFO-1> "Starting X2Go Client 4.1.2.2..."
x2go-WARNING-1> English language requested, not loading translator.
x2go-WARNING-1> English language requested, not loading translator.
x2go-INFO-3> "Started X2Go Client."
x2go-INFO-8> "Starting connection to server: hostb.example.org:22"
RESUMING SESSION is KDRIVE:  false
zsh: segmentation fault (core dumped)  x2goclien
WARNING: failed to kill process group '3897': No such process

Expected results:
no segmentation fault, the remote xterm properly displayed

Additional info:

Host A runs Gnome Shell. I've executed x2goclient from Gnome Terminal and an xterm. Same results.

The segfaulting thread faults in XDefaultRootWindow().

Its stack trace reads:
                Stack trace of thread 3897:
                #0  0x00007fa2f3b04036 XDefaultRootWindow (libX11.so.6 + 0x31036)
                #1  0x000055829fee618d _ZN12ONMainWindow13X11FindWindowE7QStringl.isra.0 (x2goclient + 0x10e18d)
                #2  0x000055829fe637fe _ZN12ONMainWindow16slotFindProxyWinEv (x2goclient + 0x8b7fe)
                #3  0x00007fa2f28ac3c0 _Z10doActivateILb0EEvP7QObjectiPPv (libQt5Core.so.5 + 0x2b13c0)
                #4  0x00007fa2f28b01fe _ZN6QTimer7timeoutENS_14QPrivateSignalE (libQt5Core.so.5 + 0x2b51fe)
                #5  0x00007fa2f28a4c7f _ZN7QObject5eventEP6QEvent (libQt5Core.so.5 + 0x2a9c7f)
                #6  0x00007fa2f34afec3 _ZN19QApplicationPrivate13notify_helperEP7QObjectP6QEvent (libQt5Widgets.so.5 + 0x1adec3)
                #7  0x00007fa2f287cbd8 _ZN16QCoreApplication15notifyInternal2EP7QObjectP6QEvent (libQt5Core.so.5 + 0x281bd8)
                #8  0x00007fa2f28c8a03 _ZN14QTimerInfoList14activateTimersEv (libQt5Core.so.5 + 0x2cda03)
                #9  0x00007fa2f28c9344 _ZL23idleTimerSourceDispatchP8_GSourcePFiPvES1_ (libQt5Core.so.5 + 0x2ce344)
                #10 0x00007fa2f11a8a9f g_main_context_dispatch (libglib-2.0.so.0 + 0x53a9f)
                #11 0x00007fa2f11faa98 g_main_context_iterate.constprop.0 (libglib-2.0.so.0 + 0xa5a98)
                #12 0x00007fa2f11a5e73 g_main_context_iteration (libglib-2.0.so.0 + 0x50e73)
                #13 0x00007fa2f28c96f3 _ZN20QEventDispatcherGlib13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE (libQt5Core.so.5 + 0x2ce6f3)
                #14 0x00007fa2f287b57b _ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE (libQt5Core.so.5 + 0x28057b)
                #15 0x00007fa2f28831b4 _ZN16QCoreApplication4execEv (libQt5Core.so.5 + 0x2881b4)
                #16 0x000055829fe96adb x2goMain (x2goclient + 0xbeadb)
                #17 0x000055829fe1a449 main (x2goclient + 0x42449)
                #18 0x00007fa2f22531e2 __libc_start_main (libc.so.6 + 0x281e2)
                #19 0x000055829fe1aeae _start (x2goclient + 0x42eae)

Comment 1 Ben Cotton 2021-11-04 13:38:17 UTC
This message is a reminder that Fedora 33 is nearing its end of life.
Fedora will stop maintaining and issuing updates for Fedora 33 on 2021-11-30.
It is Fedora's policy to close all bug reports from releases that are no longer
maintained. At that time this bug will be closed as EOL if it remains open with a
Fedora 'version' of '33'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora 33 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 2 Ben Cotton 2021-11-04 14:07:52 UTC
This message is a reminder that Fedora 33 is nearing its end of life.
Fedora will stop maintaining and issuing updates for Fedora 33 on 2021-11-30.
It is Fedora's policy to close all bug reports from releases that are no longer
maintained. At that time this bug will be closed as EOL if it remains open with a
Fedora 'version' of '33'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora 33 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 3 Ben Cotton 2021-11-04 15:04:50 UTC
This message is a reminder that Fedora 33 is nearing its end of life.
Fedora will stop maintaining and issuing updates for Fedora 33 on 2021-11-30.
It is Fedora's policy to close all bug reports from releases that are no longer
maintained. At that time this bug will be closed as EOL if it remains open with a
Fedora 'version' of '33'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora 33 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 4 Georg Sauthoff 2021-11-08 21:22:45 UTC
It's still segfaulting on Fedora 35.

(i.e. both the client and server are on Fedora 35)

Client output:

$ x2goclient                              
QSocketNotifier: Can only be used with threads started with QThread
x2go-INFO-1> "Starting X2Go Client 4.1.2.2..."
x2go-WARNING-1> English language requested, not loading translator.
x2go-WARNING-1> English language requested, not loading translator.
x2go-INFO-3> "Started X2Go Client."
x2go-INFO-8> "Starting connection to server: hostb.example.org:22"
RESUMING SESSION is KDRIVE:  false
zsh: segmentation fault (core dumped)  x2goclient
WARNING: failed to kill process group '3858': No such process


Version: 
x2goclient-4.1.2.2-5.fc35.x86_64

Current stack trace:
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007fdb70fbfcd6 in XDefaultRootWindow (dpy=0x55f9e57ae440) at /usr/src/debug/libX11-1.7.2-3.fc35.x86_64/src/Macros.c:52
52	    return (RootWindow(dpy,DefaultScreen(dpy)));
[Current thread is 1 (Thread 0x7fdb6bda0b40 (LWP 3858))]
(gdb) bt
#0  0x00007fdb70fbfcd6 in XDefaultRootWindow (dpy=0x55f9e57ae440) at /usr/src/debug/libX11-1.7.2-3.fc35.x86_64/src/Macros.c:52
#1  0x000055f9e3e43bcd in ONMainWindow::X11FindWindow(QString, long) [clone .isra.0] (text=..., rootWin=0, this=<optimized out>) at ../src/onmainwindow.cpp:13240
#2  0x000055f9e3dc385e in ONMainWindow::findWindow(QString) (this=0x55f9e58b9c10, text=...) at ../src/onmainwindow.cpp:13273
#3  ONMainWindow::slotFindProxyWin() (this=0x55f9e58b9c10) at ../src/onmainwindow.cpp:11654
#4  0x00007fdb6fceb3f0 in doActivate<false>(QObject*, int, void**) (sender=0x55f9e5b71810, signal_index=3, argv=0x7fff99b4d940) at kernel/qobject.cpp:3898
#5  0x00007fdb6fce6327 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**)
    (sender=<optimized out>, m=m@entry=0x7fdb6ff905a0 <QTimer::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fff99b4d940)
    at kernel/qobject.cpp:3946
#6  0x00007fdb6fcee64e in QTimer::timeout(QTimer::QPrivateSignal) (this=<optimized out>, _t1=...) at .moc/moc_qtimer.cpp:205
#7  0x00007fdb6fce1e9f in QObject::event(QEvent*) (this=0x55f9e5b71810, e=0x7fff99b4daa0) at kernel/qobject.cpp:1336
#8  0x00007fdb7094b443 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x55f9e5b71810, e=0x7fff99b4daa0) at kernel/qapplication.cpp:3632
#9  0x00007fdb6fcb7798 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x55f9e5b71810, event=0x7fff99b4daa0) at kernel/qcoreapplication.cpp:1064
#10 0x00007fdb6fd07e63 in QTimerInfoList::activateTimers() (this=0x55f9e58e0360) at kernel/qtimerinfo_unix.cpp:643
#11 0x00007fdb6fd087b4 in timerSourceDispatch (source=<optimized out>) at kernel/qeventdispatcher_glib.cpp:183
#12 idleTimerSourceDispatch(GSource*, GSourceFunc, gpointer) (source=<optimized out>) at kernel/qeventdispatcher_glib.cpp:230
#13 0x00007fdb6e56833f in g_main_dispatch (context=0x7fdb64005000) at ../glib/gmain.c:3381
#14 g_main_context_dispatch (context=0x7fdb64005000) at ../glib/gmain.c:4099
#15 0x00007fdb6e5bd2b8 in g_main_context_iterate.constprop.0 (context=context@entry=0x7fdb64005000, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
    at ../glib/gmain.c:4175
#16 0x00007fdb6e5659e3 in g_main_context_iteration (context=0x7fdb64005000, may_block=1) at ../glib/gmain.c:4240
#17 0x00007fdb6fd08b78 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x55f9e59672b0, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#18 0x00007fdb6fcb61a2 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fff99b4dd40, flags=..., flags@entry=...)
    at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#19 0x00007fdb6fcbe6e4 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#20 0x00007fdb702b5c50 in QGuiApplication::exec() () at kernel/qguiapplication.cpp:1860
#21 0x00007fdb7094b3b9 in QApplication::exec() () at kernel/qapplication.cpp:2824
#22 0x000055f9e3df786f in x2goMain(int, char**) (argc=<optimized out>, argv=<optimized out>) at ../src/ongetpass.cpp:114
#23 0x000055f9e3d73a2a in wrap_x2go_main(int, char**) (argv=0x7fff99b4e258, argc=1) at ../src/x2goclient.cpp:36
#24 fork_helper(int, char**) (argv=<optimized out>, argc=<optimized out>) at ../src/x2goclient.cpp:89
#25 main(int, char**) (argc=1, argv=0x7fff99b4e258) at ../src/x2goclient.cpp:175

Comment 5 Orion Poplawski 2021-11-12 03:00:10 UTC
Try running:

env QT_QPA_PLATFORM=xcb x2goclient

does that help?

Comment 6 Georg Sauthoff 2021-11-12 11:02:30 UTC
Yes, using `QT_QPA_PLATFORM=xcb x2goclient` does help.

With that I get a usable session where xclock, xterm and wireshark pretty much work as expected.

There is some noise with wireshark, though, e.g. on the console it reads:

11:54:31.422     Main Warn X server does not support XInput 2
11:54:31.832     Main Warn QXcbConnection: Failed to initialize GLX
11:54:32.513     Main Warn QXcbConnection: XCB error: 1 (BadRequest), sequence: 169, resource id: 233, major code: 130 (Unknown), minor code: 4

And gnome-shell basically complains on each key press like this:

Nov 12 11:58:56 example.org gnome-shell[1833]: Window manager warning: last_user_time (332196370) is greater than comparison timestamp (96600390).  This most likely represents a buggy client sending inaccurate timestamps in messages such as _NET_ACTIVE_WINDOW.  Trying to work around...
Nov 12 11:58:56 example.org gnome-shell[1833]: Window manager warning: 0x1a00121 appears to be one of the offending windows with a timestamp of 332196370.  Working around...

However, at least keyboard input is usable inside wireshark.

Comment 7 Ben Cotton 2022-11-29 17:12:07 UTC
This message is a reminder that Fedora Linux 35 is nearing its end of life.
Fedora will stop maintaining and issuing updates for Fedora Linux 35 on 2022-12-13.
It is Fedora's policy to close all bug reports from releases that are no longer
maintained. At that time this bug will be closed as EOL if it remains open with a
'version' of '35'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, change the 'version' 
to a later Fedora Linux version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora Linux 35 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora Linux, you are encouraged to change the 'version' to a later version
prior to this bug being closed.

Comment 8 Ben Cotton 2022-12-13 15:43:56 UTC
Fedora Linux 35 entered end-of-life (EOL) status on 2022-12-13.

Fedora Linux 35 is no longer maintained, which means that it
will not receive any further security or bug fix updates. As a result we
are closing this bug.

If you can reproduce this bug against a currently maintained version of Fedora Linux
please feel free to reopen this bug against that version. Note that the version
field may be hidden. Click the "Show advanced fields" button if you do not see
the version field.

If you are unable to reopen this bug, please file a new report against an
active release.

Thank you for reporting this bug and we are sorry it could not be fixed.


Note You need to log in before you can comment on or make changes to this bug.