Wireshark "failed to get the current screen resources" using Xming/ssh
I have cloned the git repository of Wireshark on the Centos7 remote workstation and compiled almoust current version. However, I have to work remotely from Windows 10 using Xming/ssh and in this enviroment I'm not able to run this Qt based aplication (error messages are cited below).
Other X application, including Qtcreator work fine.
I was trying to debug this issue, but it seems to be inside Qt libraries. The QtApplication constructor print "failed to get the current screen resources", and, after quite a lot of code, application finished at this line:
The X11 connection broke: I/O error (code 1)
XIO: fatal IO error 2 (No such file or directory) on X server "localhost:14.0" after 363 requests (363 known processed) with 0 events remaining.
I'm not a Wireshark developer, but just trying to add my own ASN.1 based dissector, unfortunately, currently I'm not able to test anything.
I tested also this:
[centos7dev run]$ xrandr
xrandr: Failed to get size of gamma for output default
Screen 0: minimum 1920 x 1080, current 1920 x 1080, maximum 1920 x 1080
default connected 1920x1080+0+0 0mm x 0mm
@borkowsk Did you try to build a simple Qt widgets app and run it in the same way?
@jsulm - No. I just used ready to use CMakeLists.txt supplied with the code. But is'nt Qt creator a Qt application? It work fine.
I think, that some error handling may be missing in Wireshark GUI code. Is it posible to check about what resources this message "failed to get..." talking? I saw similar with openGL application, but there is no openGL on the library list.
Pablo J. Rogina
@borkowsk I think of 3 things here, as you mentioned you need to develop under Windows:
But is'nt Qt creator a Qt application? It work fine.
Yes, but you did not build it by yourself, right?
@jsulm - Qt creator have the same message but it work almust perfectly:
failed to get the current screen resources
QXcbConnection: XCB error: 170 (Unknown), sequence: 170, resource id: 90, major code: 146 (Unknown), minor code: 20
WARNING: Application calling GLX 1.3 function "glXCreatePbuffer" when GLX 1.3 is not supported! This is an application bug!
@Pablo-J.-Rogina - Off course these are other options.
However, Ultimately I need Wireshark also on Centos and on Windows, but my developing enviroment is mostly on Centos7, and hopefully also remotely.
Maybe I have to check VcXsrv. Is it real difference? Do you have own expierience about that?
@jsulm - Wireshark is a big project, I just compiled it from the sources.
I don't think that they never try it on Qt , when they suply Qt sources for GUI :-)
@Pablo-J.-Rogina - (y)
Yes, using VcXsrv it work!
But I would suggest better diagnostic messages when QtApplication starting, and any workaround for Xming which is still the most popular MS Windows Xserwer!
It looks like Qt programmers use a solution which work on Xming (most of "standard" applications work properly), but it is practice existing somewhere outside the code of Qt libraries, which is not known for other Qt libraries users.
Pablo J. Rogina
@borkowsk glad you have at least a workaround. Are you calling your issue solved? if so please don't forget to mark your post as such. Thanks.
@Pablo-J.-Rogina - I'm not sure the workaround means this is "solved" :-)
Especially, if this required change of such basic application as Xserwer!
For me solution should be at least a piece of code able to test and solve such situation in MyApp (derived from QtApplication) class constructor.
It is possible because other Qt applications work well on Xming.
Xming was last updated on sourceforge in 2007. VcXsrv was last updated on sourceforge november 2018. Xming probably needs to be updated for newer X server standards.
@fcarney - OK, but Xming is still used in many places...
And it work with most of Qt applications, so it is doable to workaround its oldfashioned/nonstandard behavior.