Description of problem: With vncserver running attempts to make a reverse connection to host1 using "vncconfig -display whatever:x -connect host1" fail. The log shows: vncext: Reverse connection: unable to connect to host: Interrupted system call (4) This works properly if vncconnect from RH9 is used on the server end and FC1 is the listener. Google indicates others have seen this problem. cf. http://www.realvnc.com/pipermail/vnc-list/2003-December/042255.html Version-Release number of selected component (if applicable): vnc-4.0-0.beta4.3.2.i386 on both ends with both ends using FC1. How reproducible: always Steps to Reproduce: 1. On locla run "vncserver :1" 2. On remote run "vncviewer -listen" 3. On local run "vncconfig -display :1 -connect remote" Actual results: No connection, log as above. Expected results: Connection Additional info:
Hmm, I don't see this here. Could you please run 'strace -p PID 2>log' (with the process ID of Xvnc substituted for PID) just before running vncconfig, and stop it with Ctrl-C once the connection fails? Then please attach the 'log' file. It'll be that some signal interrupts the connect() system call, but depending on who set the signal (us, or X) we can either fix the signal set up or try the connection again.
Created attachment 97163 [details] Output of strace of Xvnc As requested this was generated by strace -p Xvnc_PID 2>log After starting strace I ran vncconfig -display :1 -connect <hostname>
I think this might be fixed in vnc-4.0-0.beta4.7, which should show up in rawhide in the next day or two. Please let me know. http://download.fedora.redhat.com/pub/fedora/linux/core/development/i386/Fedora/RPMS/
Well, it is not fixed, but improved. Using vnc-4.0.0.beta4.7 a connection can be made about every third try. It is at least usable now as I can always connect in two or three tries. The failures appear identical to the previous situation.
I think the vnc-restart.patch file should use EINTR instead of ERESTART. I'll build a new package.
Created attachment 97212 [details] Revised vnc-restart.patch You seem to be right! I downloaded the beta4.7.src rpm and revised your patch replacing if (e == ERESTART) with if ((e == ERESTART) || (e == EINTR)) and built a binary rpm. The result works like a charm. The revised vnc-restart.patch is attached.
Great. Just to be sure, could you please try these packages?: http://cyberelk.net/tim/data/tmp/vnc-4.0-0.beta4.8.i386.rpm http://cyberelk.net/tim/data/tmp/vnc-server-4.0-0.beta4.8.i386.rpm They simple replace ERESTART with EINTR. I don't think that the application is ever meant to see ERESTART.
I tried 4.0-0.beta4.8 and it works fine. The problem seems to be solved. Thanks.
Great. Patch submitted upstream.