Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 14 May 2012 19:47:22 GMT
From:      Gary Palmer <gpalmer@FreeBSD.org>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/167891: emulators/virtualbox-ose: bus error with more than one headless VM
Message-ID:  <201205141947.q4EJlMEg059931@red.freebsd.org>
Resent-Message-ID: <201205141950.q4EJo2Dw048402@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         167891
>Category:       ports
>Synopsis:       emulators/virtualbox-ose: bus error with more than one headless VM
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon May 14 19:50:01 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator:     Gary Palmer
>Release:        9.0-RELEASE
>Organization:
>Environment:
FreeBSD xxx 9.0-RELEASE FreeBSD 9.0-RELEASE #5: Tue May  1 00:40:42 BST 2012     root@xxx:/usr/obj/usr/src/sys/MICRO  amd64
>Description:
If the default VNC port is already used when you start a second VM with VBoxHeadless -n -m <port number> then when you connect with a VNC client the VBoxHeadless bus errors.  There was a warning about the IPv6 port already being in use.  Patching virualbox to set the TCP port number for IPv4 and IPv6 appears to have resolved the issue
>How-To-Repeat:
have something listening on TCP 5900 on IPv6
start a VM via VBoxHeadless -n -m 5901
connect vncviewer to port 5901
>Fix:
see attached patch

libvncserver has an autoprobe mode which should detect the first free VNC server port.  it may be worth turning that feature on if -m isn't specified.

Patch attached with submission follows:

--- src/VBox/Frontends/VBoxHeadless/FramebufferVNC.cpp.orig	2012-05-12 19:50:26.807639833 +0100
+++ src/VBox/Frontends/VBoxHeadless/FramebufferVNC.cpp	2012-05-12 19:50:38.568636058 +0100
@@ -89,7 +89,10 @@
     vncServer = rfbGetScreen(0, NULL, mWidth, mHeight, 8, 3, 1);
     vncServer->screenData = (void*)this;
     if (mVncPort)
+    {
         vncServer->port = mVncPort;
+        vncServer->ipv6port = mVncPort;
+    }
     char *pszDesktopName;
     rc = RTStrAPrintf(&pszDesktopName, "%s - VirtualBox", pszName);
     if (rc >= 0)


>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201205141947.q4EJlMEg059931>