Hi Tristan

Thanks for the report. The new vnc maintainers will look into this.

Best regards,

// Ola

On Fri, Sep 02, 2011 at 05:47:20PM -0700, Tristan Schmelcher wrote:
> FYI, the Ubuntu bug report is
> https://bugs.launchpad.net/ubuntu/+source/vnc4/+bug/819473
> 
> On Fri, Sep 2, 2011 at 3:29 PM, Tristan Schmelcher
> <tristan_schmelc...@alumni.uwaterloo.ca> wrote:
> > Package: vnc4
> > Version: 4.1.1+X4.3.0-37
> > Severity: normal
> > Tags: patch
> > User: ubuntu-de...@lists.ubuntu.com
> > Usertags: origin-ubuntu oneiric ubuntu-patch
> >
> >
> > I have been experiencing this bug for several years but I finally decided 
> > to investigate it. I run Xvnc through xinetd and I often find that there 
> > are left-over Xvnc processes each consuming 100% CPU. They tend to crop up 
> > when a client disconnects. In particular, scanning ports with nmap produces 
> > the problem every time.
> >
> > I've tracked down the problem and implemented a fix. The issue is that Xvnc 
> > in inetd mode detects whether it is run as "wait" or "nowait" by checking 
> > if the inetd socket has a valid peer name with getpeername(). If it has a 
> > valid peer name then it assumes nowait mode, otherwise it assumes wait 
> > mode. But this is unreliable, because if it is run in nowait mode and a 
> > client connects and disconnects very quickly then the socket will no longer 
> > have a valid peer name when Xvnc checks and it will mistakenly use wait 
> > mode. The 100% CPU results from repeatedly trying to call accept() on the 
> > socket in the select loop.
> >
> > My solution is to instead detect wait vs. nowait via getsockopt(..., 
> > SOL_SOCKET, SO_ACCEPTCONN, ...), which works reliably in both modes.
> >
> > *** /tmp/tmpkCQys0
> > I have sent the attached patch to Ubuntu, but I am sending it to Debian too 
> > because there is nothing Ubuntu-specific about it.
> >
> >
> >  * Fix 100% CPU hang when run from inetd in nowait mode if a client 
> > connects and disconnects quickly (e.g., nmap).
> >
> >
> > Thanks for considering the patch.
> >
> >
> > -- System Information:
> > Debian Release: squeeze/sid
> >  APT prefers natty-updates
> >  APT policy: (500, 'natty-updates'), (500, 'natty-security'), (500, 'natty')
> > Architecture: amd64 (x86_64)
> >
> > Kernel: Linux 2.6.38-10-generic (SMP w/8 CPU cores)
> > Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
> > Shell: /bin/sh linked to /bin/dash
> >
> 
> 
> 

-- 
 --------------------- Ola Lundqvist ---------------------------
/  o...@debian.org                     Annebergsslingan 37      \
|  o...@inguza.com                      654 65 KARLSTAD          |
|  http://inguza.com/                  +46 (0)70-332 1551       |
\  gpg/f.p.: 7090 A92B 18FE 7994 0C36  4FE4 18A1 B1CF 0FE5 3DD9 /
 ---------------------------------------------------------------



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to