Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 12 Jun 2014 20:32:38 -0700
From:      Ron Thomas <ron@vopenhouse.ca>
To:        =?UTF-8?Q?Bernhard_Fr=C3=B6hlich?= <decke@freebsd.org>
Cc:        "freebsd-emulation@freebsd.org" <freebsd-emulation@freebsd.org>
Subject:   Re: FreeBSD Port: emulators/virtualbox-ose
Message-ID:  <CAHf5H2=7p59kBBWMhNnxAVCjwOeE9sPjXh%2BLMSE8vAZHM8jRZg@mail.gmail.com>
In-Reply-To: <CAE-m3X2Lo0o_Ka%2BsCGNPxVa2sCzsOfKfSJaHyQZDkhv04BvHLw@mail.gmail.com>
References:  <CAHf5H2n6NRcKNBtwCn_PU6bhPoMoyc_4uUMG0G=8XPCN6d2BsQ@mail.gmail.com> <CAHf5H2k3WEAuV=G5rUvdcwUBWK6KcPRcTcYhW-9-zTvoB0k=Lw@mail.gmail.com> <CAE-m3X2Lo0o_Ka%2BsCGNPxVa2sCzsOfKfSJaHyQZDkhv04BvHLw@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Jun 12, 2014 at 7:29 AM, Bernhard Fr=C3=B6hlich <decke@freebsd.org>
wrote:

> On Thu, Jun 12, 2014 at 3:17 AM, Ron Thomas <ron@vopenhouse.ca> wrote:
> > Not sure if this is the right venue for this, if not, could you point m=
e
> in
> > the right direction?
>
> You're absolutely at the right place.
>
> > VBoxHeadless crashes on VNC disconnect. Every time I close a VNC sessio=
n
> > VBoxHeadless crashes.  I am starting VirtualBox using "service
> vboxheadless
> > start"
> >
> > #uname -a
> > FreeBSD my.domain.com 9.2-RELEASE-p6 FreeBSD 9.2-RELEASE-p6 #0: Tue May
> 13
> > 08:21:53 UTC 2014
> > root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC
> > amd64
> >
> > #pkg version | grep 'virtualbox'
> > virtualbox-ose-4.3.12_1            =3D
> > virtualbox-ose-kmod-4.3.12         =3D
> >
> > Installed with following options:
> > DBUS
> > DEBUG
> > GUESTADDITIONS
> > PYTHON
> > UDPTUNNEL
> > VNC
> >
> >
> > (gdb) backtrace
> > #0  0x0000000805963e48 in ConsoleVRDPServer::AuthDisconnect
> > (this=3D0x805013f00, uuid=3D@0x7ffffeeb3ce0, u32ClientId=3D4294967295) =
at
> >
> /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.3.12/src/VBox/Main/=
src-client/ConsoleVRDPServer.cpp:3339
> > #1  0x0000000805919ddb in Console::VRDPClientDisconnect
> (this=3D0x805095800,
> > u32ClientId=3D4294967295, fu32Intercepted=3D0) at
> >
> /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.3.12/src/VBox/Main/=
src-client/ConsoleImpl.cpp:1411
> > #2  0x000000080596962c in ConsoleVRDPServer::VRDPCallbackIntercept
> > (pvCallback=3D0x805013f00, u32ClientId=3D4294967295, fu32Intercept=3D0,
> > ppvIntercept=3D0x80596962c)
> >     at
> >
> /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.3.12/src/VBox/Main/=
src-client/ConsoleVRDPServer.cpp:1016
> > #3  0x00000008084014c0 in VNCServerImpl::clientGoneHook (cl=3D0x80a0780=
00)
> at
> >
> /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.3.12/src/VBox/ExtPa=
cks/VNC/VBoxVNC.cpp:1294
> > #4  0x00000008086178f8 in rfbClientConnectionGone () from
> > /usr/local/lib/libvncserver.so.0
> > #5  0x0000000808611dec in clientInput () from
> > /usr/local/lib/libvncserver.so.0
> > #6  0x0000000800829d34 in pthread_getprio () from /lib/libthr.so.3
> > #7  0x0000000000000000 in ?? ()
>
> The stacktrace looks very much like a bug in libvncserver. There is no
> information passed to
> libvncserver that makes me believe that the passed data is wrong so I
> guess it this is nothing
> that VBox can fix.
>
>
> https://www.virtualbox.org/browser/vbox/trunk/src/VBox/ExtPacks/VNC/VBoxV=
NC.cpp#L1297
>
> It might be worth trying to recompile libvncserver port with debug
> options to get a full stacktrace
> but it is somewhere here:
>
>
> https://github.com/LibVNC/libvncserver/blob/79e68d065004b24811d68e211c27b=
918654aabed/libvncserver/main.c#L509
>

When I use make config, There doesn't appear to be debug options in the
net/libvncserver port


>
> and the patch that we have in our libvncserver port looks quite like
> it fixes a similar issue in
> another place to me
>
>
> http://svnweb.freebsd.org/ports/head/net/libvncserver/files/patch-libvncs=
erver__sockets.c?revision=3D340725&view=3Dmarkup
>
> so my first idea would be to do something like that to libvncserver:
>
>
> --- main.c.orig    2014-06-12 16:20:35.163489814 +0200
> +++ main.c    2014-06-12 16:22:00.598491327 +0200
> @@ -546,10 +546,10 @@
>          }
>
>          /* We have some space on the transmit queue, send some data */
> -        if (FD_ISSET(cl->sock, &wfds))
> +        if (cl->sock >=3D 0 && FD_ISSET(cl->sock, &wfds))
>              rfbSendFileTransferChunk(cl);
>
> -        if (FD_ISSET(cl->sock, &rfds) || FD_ISSET(cl->sock, &efds))
> +        if (cl->sock >=3D 0 && (FD_ISSET(cl->sock, &rfds) ||
> FD_ISSET(cl->sock, &efds)))
>              rfbProcessClientMessage(cl);
>      }
>
>
> This patch is completely untested was produced within 2 minutes of
> looking at the code and
> I am not familiar with the VNC code at all so this might be completely
> nonsense - please take
> it for what it's worth.
>
>
I tried your patch then recompiled both libvncserver then virtualbox, no
luck. Any other suggestions?


> Since the libvncserver port is unmaintained right now but bapt@ was
> the former maintainer I
> will CC him just in case he knows something about it.
>
> --
> Bernhard Froehlich
> http://www.bluelife.at/
>



Ron



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAHf5H2=7p59kBBWMhNnxAVCjwOeE9sPjXh%2BLMSE8vAZHM8jRZg>