From owner-freebsd-emulation@FreeBSD.ORG Fri Jun 13 03:32:40 2014 Return-Path: Delivered-To: freebsd-emulation@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 1235682E for ; Fri, 13 Jun 2014 03:32:40 +0000 (UTC) Received: from mail-vc0-x22e.google.com (mail-vc0-x22e.google.com [IPv6:2607:f8b0:400c:c03::22e]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B9A1428A6 for ; Fri, 13 Jun 2014 03:32:39 +0000 (UTC) Received: by mail-vc0-f174.google.com with SMTP id hy4so1714765vcb.5 for ; Thu, 12 Jun 2014 20:32:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vopenhouse.ca; s=google; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=0Qu7UUsTy/aDDnohamYz74AtVZbrgzQwwedi/VifagQ=; b=zCYnnCyI3QQaKnKmhGNfNebfQxoRO6DTBGNE9vysyKZqY2DjfVEOrTsrBmuhtFySVd ooCRUgd2gzvVCZ+CkfdcmiEKL0L0PznJFKqSYQwzF91YQG1mPgDbeklHM6xTEQGWUXqX IkhMQKvN3IyDks71rFmKXi4SBPb5Iy9MlXeR4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=0Qu7UUsTy/aDDnohamYz74AtVZbrgzQwwedi/VifagQ=; b=kNHbK8uiVtzi62QGsmNyfSbOCFyIl/7oAPvitbymjwmPxRfEHXwRxmUaNDU9lMSxOY GjOsxG1mtBjWBwoqUyXWZLT9vZEQO0xBm0Xkp565pM5Q3aBkGDQiqLdVfo+e1AMko/W1 /QBYozfKlPaQlzvVJrOEiGqXtLQ8Xi0thlz7ZBMXkomAKO3xz7JE35itcVrXEBvPEuGQ ih1a2Z9VpG6nbQ+lkuvQB6af3FogW6jdQElH/e9L8TnCCBeSADQJ+z37NFJX1i39Bvdn Xt1e/Ko98lV7P4/DWwQ7Y6mNFFfHEIa0vtmkGBeqSxV659oIyYRi1e/E08CBt2iDcUAR U4iw== X-Gm-Message-State: ALoCoQm19DlceoYK5wkSnTMU8SXIHno5XcPPcHIeGoCD+WglR1kWRPn/2WggH1gCDgoMO6R9uCWI MIME-Version: 1.0 X-Received: by 10.52.121.39 with SMTP id lh7mr19536vdb.66.1402630358320; Thu, 12 Jun 2014 20:32:38 -0700 (PDT) Received: by 10.220.197.130 with HTTP; Thu, 12 Jun 2014 20:32:38 -0700 (PDT) X-Originating-IP: [23.16.233.58] In-Reply-To: References: Date: Thu, 12 Jun 2014 20:32:38 -0700 Message-ID: Subject: Re: FreeBSD Port: emulators/virtualbox-ose From: Ron Thomas To: =?UTF-8?Q?Bernhard_Fr=C3=B6hlich?= Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.18 Cc: "freebsd-emulation@freebsd.org" X-BeenThere: freebsd-emulation@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Development of Emulators of other operating systems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Jun 2014 03:32:40 -0000 On Thu, Jun 12, 2014 at 7:29 AM, Bernhard Fr=C3=B6hlich wrote: > On Thu, Jun 12, 2014 at 3:17 AM, Ron Thomas 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