Subject: slot argument mismatch in ONMainWindow::slotTunnelOk causes hang during connect
From: Will Wagner <[email-masked]>
To: [email-masked]
Date: Fri, 06 Mar 2015 11:23:46 +0000

Package: x2goclient
Version: 4.0.3.2

When trying to connect to certain servers I get 'Object::connect: No 
such slot ONMainWindow::slotTunnelOk()' in the debugging output of X2Go 
Client for Windows 4.0.3.2. The application hangs without ever connecting.

 From looking at the code in ONMainWindow::slotTunnelOk() it has a check 
to see if winServersReady is true and if not it uses QTimer::singleShot 
to retry 100mS later. However the slot connection has an argument 
mismatch and so slotTunnelOk is never called again and this leads to the 
hang.

The full debug output is:
x2go-INFO-1> "Starting x2goclient..."
x2go-WARNING-1> "Can't load translator: :/x2goclient_en_gb"
x2go-WARNING-2> "Can't load translator: :/qt_en_GB"
x2go-DEBUG-onmainwindow.cpp:1208> Removing apps from tray
x2go-DEBUG-onmainwindow.cpp:1176> Plugging apps in tray.
x2go-DEBUG-onmainwindow.cpp:9817> Getting Xorg settings.
x2go-INFO-3> "Started  x2goclient."
x2go-DEBUG-onmainwindow.cpp:495> "$HOME=C:/Users/willw"
x2go-DEBUG-onmainwindow.cpp:2123> Reading 4 sessions from config file.
x2go-DEBUG-onmainwindow.cpp:9543> Starting win servers...
x2go-DEBUG-onmainwindow.cpp:9895> "C:/Users/willw/.x2go/etc/sshd_config 
created."
x2go-DEBUG-onmainwindow.cpp:9312> got localhost
x2go-DEBUG-onmainwindow.cpp:9334> Port is free: 7022
x2go-DEBUG-onmainwindow.cpp:9951> Creating desktop: x2go_willw
x2go-DEBUG-onmainwindow.cpp:1208> Removing apps from tray
x2go-INFO-8> "Starting connection to server: 172.20.0.2:22"
x2go-DEBUG-onmainwindow.cpp:2702> Start new ssh connection to 
server:"172.20.0.2":"22" krbLogin: false
x2go-DEBUG-sshmasterconnection.cpp:202> starting ssh connection without 
kerberos authentication

x2go-DEBUG-sshmasterconnection.cpp:206> SshMasterConnection, instance 
SshMasterConnection(0x15a8d58)  created
x2go-DEBUG-sshmasterconnection.cpp:442> SshMasterConnection, instance 
SshMasterConnection(0x15a8d58)  entering thread
x2go-DEBUG-sshmasterconnection.cpp:478> libSsh not inited yet, initting

x2go-DEBUG-sshmasterconnection.cpp:522> setting SSH DIR to 
"C:/Users/willw/ssh"
x2go-DEBUG-sshmasterconnection.cpp:789> cserverAuth

x2go-DEBUG-sshmasterconnection.cpp:804> state: 1

x2go-DEBUG-sshmasterconnection.cpp:640> setting SSH DIR to 
"C:/Users/willw/ssh"
x2go-DEBUG-sshmasterconnection.cpp:963> Password authentication

x2go-DEBUG-sshmasterconnection.cpp:654> user auth OK

x2go-DEBUG-onmainwindow.cpp:2797> SSH connection established.
x2go-DEBUG-onmainwindow.cpp:3060> Continue normal x2go session
x2go-DEBUG-sshprocess.cpp:189> executing remote command via SshProcess 
object (0): "export HOSTNAME && x2golistsessions"

x2go-DEBUG-sshmasterconnection.cpp:1434> creating new channel

x2go-DEBUG-sshmasterconnection.cpp:1438> new channel:0x37196b0

x2go-DEBUG-sshmasterconnection.cpp:1469> executing remote: "sh -c 'echo 
X2GODATABEGIN:819aa939-7479-4d86-bbeb-8c9e041031a8; 
PATH=/usr/local/bin:/usr/bin:/bin export HOSTNAME && x2golistsessions; 
echo X2GODATAEND:819aa939-7479-4d86-bbeb-8c9e041031a8;'"

x2go-DEBUG-sshmasterconnection.cpp:1492>  new exec channel created

x2go-DEBUG-sshmasterconnection.cpp:1541> EOF ON CHANNEL 0x37196b0 
(SshProcess: 0)

x2go-DEBUG-sshmasterconnection.cpp:1664> eof sent

x2go-DEBUG-sshmasterconnection.cpp:1668> channel closed

x2go-DEBUG-sshprocess.cpp:449> ssh finished: true - 
"39358|willw-50-1425634735_stDXFCE_dp32|50|waldorf2|S|2015-03-06T09:38:55|b7d8a7118d17318a0f0f5d435a497f0a|172.20.1.8|30001|30002|2015-03-06T09:41:52|willw|267|30003|
" (0).

x2go-DEBUG-onmainwindow.cpp:3404> 
"39358|willw-50-1425634735_stDXFCE_dp32|50|waldorf2|S|2015-03-06T09:38:55|b7d8a7118d17318a0f0f5d435a497f0a|172.20.1.8|30001|30002|2015-03-06T09:41:52|willw|267|30003|
"
x2go-DEBUG-onmainwindow.cpp:1208> Removing apps from tray
x2go-DEBUG-onmainwindow.cpp:1208> Removing apps from tray
x2go-DEBUG-onmainwindow.cpp:9312> got localhost
x2go-DEBUG-onmainwindow.cpp:9334> Port is free: 6000
x2go-DEBUG-onmainwindow.cpp:9400> using internal X: true
x2go-DEBUG-onmainwindow.cpp:9423> WxH:"1024"x"768"
x2go-DEBUG-onmainwindow.cpp:9428> "-multiwindow -notrayicon -clipboard"
x2go-DEBUG-onmainwindow.cpp:9465> Running "C:/Program Files 
(x86)/x2goclient\vcxsrv\vcxsrv.exe" "-multiwindow -notrayicon -clipboard :0"
x2go-DEBUG-sshprocess.cpp:189> executing remote command via SshProcess 
object (1): "x2goresume-session willw-50-1425634735_stDXFCE_dp32 
1024x768 adsl 16m-jpeg-9 us auto 1 both"

x2go-DEBUG-sshmasterconnection.cpp:1434> creating new channel

x2go-DEBUG-sshmasterconnection.cpp:1438> new channel:0x37197b8

x2go-DEBUG-sshmasterconnection.cpp:1469> executing remote: "sh -c 'echo 
X2GODATABEGIN:67634731-3df8-4974-af0a-1f3568ca4bdb; 
PATH=/usr/local/bin:/usr/bin:/bin x2goresume-session 
willw-50-1425634735_stDXFCE_dp32 1024x768 adsl 16m-jpeg-9 us auto 1 
both; echo X2GODATAEND:67634731-3df8-4974-af0a-1f3568ca4bdb;'"

x2go-DEBUG-sshmasterconnection.cpp:1492>  new exec channel created

x2go-DEBUG-sshmasterconnection.cpp:1596> EOF ON CHANNEL 0x37197b8 
(SshProcess: 1)

x2go-DEBUG-sshmasterconnection.cpp:1664> eof sent

x2go-DEBUG-sshmasterconnection.cpp:1668> channel closed

x2go-DEBUG-sshprocess.cpp:449> ssh finished: true - "gr_port=30001
sound_port=30002
fs_port=30003
" (1).

x2go-DEBUG-onmainwindow.cpp:4727> Agent output: "gr_port=30001
sound_port=30002
fs_port=30003
"
x2go-DEBUG-onmainwindow.cpp:4905> New gr_port: "30001"
x2go-DEBUG-onmainwindow.cpp:4912> New sound_port: "30002"
x2go-DEBUG-onmainwindow.cpp:4919> New fs_port: "30003"
x2go-DEBUG-onmainwindow.cpp:9312> got localhost
x2go-DEBUG-onmainwindow.cpp:9334> Port is free: 31001
x2go-DEBUG-sshprocess.cpp:294> Starting tunnel via SshProcess object 
(2): "localhost":30001 -> "localhost":31001

x2go-DEBUG-onmainwindow.cpp:5172> Waiting for win-servers.
Object::connect: No such slot ONMainWindow::slotTunnelOk()
x2go-DEBUG-sshprocess.cpp:157> Direct tunnel: waiting for connections on 
"localhost":31001

x2go-DEBUG-onmainwindow.cpp:9312> got localhost
x2go-DEBUG-onmainwindow.cpp:9340> Port already used: 6000
x2go-DEBUG-onmainwindow.cpp:9494> X is started.
x2go-DEBUG-onmainwindow.cpp:9861> All winservers are started.