Bug 114063

Summary: vncconfig -connect fails
Product: [Fedora] Fedora Reporter: John Franks <john>
Component: vncAssignee: Tim Waugh <twaugh>
Status: CLOSED RAWHIDE QA Contact: David Lawrence <dkl>
Severity: medium Docs Contact:
Priority: medium    
Version: 1   
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: 4.0-0.beta4.8 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2004-01-23 17:24:25 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Output of strace of Xvnc
none
Revised vnc-restart.patch none

Description John Franks 2004-01-22 01:41:43 UTC
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:

Comment 1 Tim Waugh 2004-01-22 12:26:08 UTC
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.

Comment 2 John Franks 2004-01-22 14:40:59 UTC
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>

Comment 3 Tim Waugh 2004-01-22 15:58:29 UTC
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/

Comment 4 John Franks 2004-01-23 14:35:27 UTC
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.

Comment 5 Tim Waugh 2004-01-23 14:59:42 UTC
I think the vnc-restart.patch file should use EINTR instead of
ERESTART.  I'll build a new package.

Comment 6 John Franks 2004-01-23 16:04:45 UTC
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.

Comment 7 Tim Waugh 2004-01-23 17:13:00 UTC
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.

Comment 8 John Franks 2004-01-23 17:24:25 UTC
I tried 4.0-0.beta4.8 and it works fine.  The problem seems to be
solved. Thanks.

Comment 9 Tim Waugh 2004-01-23 17:26:40 UTC
Great.  Patch submitted upstream.