a.
2014-06-30 16:28:55 UTC
So we are trying to get a problem with VirtualBox working. We are
heavily using the snapshot feature and hit a wall, as we probably have
exceeded the maximum possible amount of active snapshots. As each
Snapshot is written into the VBOX-file as a descendent of previous
Snapshot, at one point, the nesting exceeds 256 entries - which is an
arbitrary limit set by the libxml2. When trying to register a VM which
has too many Snapshots, vboxmanage registervm fails with an error.
We tried to work around this issue simply by adding the corresponding
XML_PARSE_HUGE flag in the function that calls to the xml-library. We
also created a patch:
--- virtualbox-4.1.12-dfsg.orig/src/VBox/Runtime/r3/xml.cpp
+++ virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/xml.cpp
@@ -1500,7 +1500,7 @@ void XmlMemParser::read(const void* pvBu
(int)cbSize,
pcszFilename,
NULL, //
encoding = auto
- XML_PARSE_NOBLANKS | XML_PARSE_NONET)))
+ XML_PARSE_NOBLANKS | XML_PARSE_NONET | XML_PARSE_HUGE)))
throw XmlError(xmlCtxtGetLastError(m_ctxt));
doc.refreshInternals();
@@ -1630,7 +1630,7 @@ void XmlFileParser::read(const RTCString
&context,
pcszFilename,
NULL, // encoding
= auto
- XML_PARSE_NOBLANKS |
XML_PARSE_NONET)))
+ XML_PARSE_NOBLANKS |
XML_PARSE_NONET | XML_PARSE_HUGE)))
throw XmlError(xmlCtxtGetLastError(m_ctxt));
doc.refreshInternals();
We successfully rebuild the source with that flag usign
dpkg-buildpackage. That successfully resolved the previous error,
however we now have the following problem by VBoxManage when trying to
register the VM in question:
vboxmanage registervm /mnt/storage/vm-vbox
VBoxManage: error: Code NS_ERROR_CALL_FAILED (0x800706BE) - Call to
remote object failed (extended info not available)
Context: "OpenMachine(Bstr(a->argv[0]).raw(), machine.asOutParam())" at
line 90 of file VBoxManageMisc.cpp
Unfortunately, we have no idea how to work with that error.
This is the VBoxSVC.log:
VirtualBox (XP)COM Server 4.1.12_Ubuntu r77245 linux.amd64 (Jun 30 2014
16:40:09) release log
00:00:00.001 main Log opened 2014-06-30T15:23:31.882224000Z
00:00:00.001 main OS Product: Linux
00:00:00.001 main OS Release: 3.11.0-24-generic
00:00:00.001 main OS Version: #41~precise1-Ubuntu SMP Wed Jun 11
13:15:06 UTC 2014
00:00:00.001 main OS Service Pack: #41~precise1-Ubuntu SMP Wed Jun
11 13:15:06 UTC 2014
00:00:00.001 main Executable: /usr/lib/virtualbox/VBoxSVC
00:00:00.001 main Process ID: 6411
00:00:00.001 main Package type: LINUX_64BITS_GENERIC (OSE)
00:00:00.107 nspr-2 Loading settings file
"/home/user/.VirtualBox/VirtualBox.xml" with version "1.12-linux"
00:00:00.120 nspr-2 Successfully initialised host USB using sysfs
00:00:00.135 nspr-2 VDInit finished
00:00:00.200 nspr-2 Loading settings file "/mnt/storage/vm.vbox" with
version "1.12-linux"
Any help would be immensely appreciated.
heavily using the snapshot feature and hit a wall, as we probably have
exceeded the maximum possible amount of active snapshots. As each
Snapshot is written into the VBOX-file as a descendent of previous
Snapshot, at one point, the nesting exceeds 256 entries - which is an
arbitrary limit set by the libxml2. When trying to register a VM which
has too many Snapshots, vboxmanage registervm fails with an error.
We tried to work around this issue simply by adding the corresponding
XML_PARSE_HUGE flag in the function that calls to the xml-library. We
also created a patch:
--- virtualbox-4.1.12-dfsg.orig/src/VBox/Runtime/r3/xml.cpp
+++ virtualbox-4.1.12-dfsg/src/VBox/Runtime/r3/xml.cpp
@@ -1500,7 +1500,7 @@ void XmlMemParser::read(const void* pvBu
(int)cbSize,
pcszFilename,
NULL, //
encoding = auto
- XML_PARSE_NOBLANKS | XML_PARSE_NONET)))
+ XML_PARSE_NOBLANKS | XML_PARSE_NONET | XML_PARSE_HUGE)))
throw XmlError(xmlCtxtGetLastError(m_ctxt));
doc.refreshInternals();
@@ -1630,7 +1630,7 @@ void XmlFileParser::read(const RTCString
&context,
pcszFilename,
NULL, // encoding
= auto
- XML_PARSE_NOBLANKS |
XML_PARSE_NONET)))
+ XML_PARSE_NOBLANKS |
XML_PARSE_NONET | XML_PARSE_HUGE)))
throw XmlError(xmlCtxtGetLastError(m_ctxt));
doc.refreshInternals();
We successfully rebuild the source with that flag usign
dpkg-buildpackage. That successfully resolved the previous error,
however we now have the following problem by VBoxManage when trying to
register the VM in question:
vboxmanage registervm /mnt/storage/vm-vbox
VBoxManage: error: Code NS_ERROR_CALL_FAILED (0x800706BE) - Call to
remote object failed (extended info not available)
Context: "OpenMachine(Bstr(a->argv[0]).raw(), machine.asOutParam())" at
line 90 of file VBoxManageMisc.cpp
Unfortunately, we have no idea how to work with that error.
This is the VBoxSVC.log:
VirtualBox (XP)COM Server 4.1.12_Ubuntu r77245 linux.amd64 (Jun 30 2014
16:40:09) release log
00:00:00.001 main Log opened 2014-06-30T15:23:31.882224000Z
00:00:00.001 main OS Product: Linux
00:00:00.001 main OS Release: 3.11.0-24-generic
00:00:00.001 main OS Version: #41~precise1-Ubuntu SMP Wed Jun 11
13:15:06 UTC 2014
00:00:00.001 main OS Service Pack: #41~precise1-Ubuntu SMP Wed Jun
11 13:15:06 UTC 2014
00:00:00.001 main Executable: /usr/lib/virtualbox/VBoxSVC
00:00:00.001 main Process ID: 6411
00:00:00.001 main Package type: LINUX_64BITS_GENERIC (OSE)
00:00:00.107 nspr-2 Loading settings file
"/home/user/.VirtualBox/VirtualBox.xml" with version "1.12-linux"
00:00:00.120 nspr-2 Successfully initialised host USB using sysfs
00:00:00.135 nspr-2 VDInit finished
00:00:00.200 nspr-2 Loading settings file "/mnt/storage/vm.vbox" with
version "1.12-linux"
Any help would be immensely appreciated.