2

I've got a small SRE lab set up using various Vagrant boxes (VirtualBox backend). I usually work on a Debian or Archlinux box and attach to a Windows box via remote debugging. On my Linux boxes, X11 forwarding is enabled and works usually. When I try to run Cutter (the official rizin GUI), either from the AppImage or unpacked, I receive the following error:

The X11 connection broke: No error (code 0)
X connection to localhost:10.0 broken (explicit kill or server shutdown).

I've never seen something like this before and I can't reproduce it with any other application, AppImage or not. Cutter runs fine locally, other applications run fine via X11 forwarding in the boxes, only this one errors on both, the Debian and the Arch box.

Any idea where to start debugging is appreciated :)

2 Answers 2

2

I was able to solve the issue finally. @Eduardo Trápani's pointer to qt helped a lot. It led me to enable Qt Plugin Debugging via QT_DEBUG_PLUGINGS=1 environment variable. From there i noticed that the error occurs after some kind of OpenGL plugin was loaded:

Got keys from plugin meta data ("xcb_egl")
QFactoryLoader::QFactoryLoader() looking at "/tmp/.mount_CutterCuz84C/usr/plugins/xcbglintegrations/libqxcb-glx-integration.so"
Found metadata in lib /tmp/.mount_CutterCuz84C/usr/plugins/xcbglintegrations/libqxcb-glx-integration.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.Xcb.QXcbGlIntegrationFactoryInterface.5.5",
    "MetaData": {
        "Keys": [
            "xcb_glx"
        ]
    },
    "archreq": 0,
    "className": "QXcbGlxIntegrationPlugin",
    "debug": false,
    "version": 331520
}


Got keys from plugin meta data ("xcb_glx")
QFactoryLoader::QFactoryLoader() checking directory path "/tmp/.mount_CutterCuz84C/usr/bin/xcbglintegrations" ...
loaded library "/tmp/.mount_CutterCuz84C/usr/plugins/xcbglintegrations/libqxcb-glx-integration.so"
The X11 connection broke: No error (code 0)
X connection to localhost:10.0 broken (explicit kill or server shutdown).

This finally, after some research, led to enable indirect OpenGL rendering:

export LIBGL_ALWAYS_INDIRECT=1

For more details see here.

1

That is probably an issue with qt, like this one. In a nutshell, qt is asking for something the X server cannot provide (X server does not support XInput 2).

You could try to enable trusted X11 forwarding with the -Y switch and see if that works:

ssh -Y user@host

You can find more information (and words of warning) on -X vs -Y in this answer.

1
  • Thank you for your suggestion! Unfortunately, -Y as well as ForwardX11Trusted yes doesn't help. I tried to investigate in direction of qt as you suggested, but other qt applications (e.g. qvlc) worked.
    – Simon
    Apr 25, 2022 at 14:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.