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.
Version-Release number of selected component (if applicable):
vnc-4.0-0.beta4.3.2.i386 on both ends with both ends using
Steps to Reproduce:
1. On locla run "vncserver :1"
2. On remote run "vncviewer -listen"
3. On local run "vncconfig -display :1 -connect remote"
No connection, log as above.
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.
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]
You seem to be right! I downloaded the beta4.7.src rpm and revised
your patch replacing
if (e == ERESTART)
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?:
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
Great. Patch submitted upstream.