You are not logged in.

#1 2015-08-12 14:40:26

fax
Member
Registered: 2013-01-07
Posts: 16

[SOLVED] How to configure Boinc for apps that require VirtualBox?

I set up Boinc following the instructions in the Wiki and it's been running fine ever since. I recently added the Atlas@Home project however, which requires VirtualBox, and these tasks after a few minutes always go into state "Waiting to run (Scheduler wait: VM Hypervisor failed to enter an online state in a timely fashion.)" and don't recover. When I run "sudo -u boinc VBoxManage list vms" I can see that each task registered a VM. Boinc/VirtualBox seems to fail to start those VMs however.

This looks like a permissions issue to me because the Boinc tasks are executed by a daemon running as user boinc. The only advice I found was this two year old piece from the LHC@home project, suggesting not to run Boinc as a service. Has anyone figured out a way to make this work with Boinc running as a service?

Last edited by fax (2015-08-14 13:34:40)

Offline

#2 2015-08-12 15:18:48

fax
Member
Registered: 2013-01-07
Posts: 16

Re: [SOLVED] How to configure Boinc for apps that require VirtualBox?

Well, I did find the VirtualBox setup under /var/lib/boinc/.config/VirtualBox in the meantime. And I added user boinc to group vboxusers and rebooted the machine. That hasn't helped however. The Atlas tasks go into waiting state after a little over five minutes and the VBoxSVC.log is filling up with error messages during those five minutes.

Offline

#3 2015-08-14 12:41:34

fax
Member
Registered: 2013-01-07
Posts: 16

Re: [SOLVED] How to configure Boinc for apps that require VirtualBox?

I found the stderr.txt from one of the Boinc slots and it has this:

    VM Execution Log:
...
00:00:00.357438 VMSetError: /build/virtualbox/src/VirtualBox-5.0.0/src/VBox/Storage/VDI.cpp(861) int vdiOpenImage(PVDIIMAGEDESC, unsigned int); rc=VERR_VD_VDI_INVALID_HEADER
00:00:00.357451 VMSetError: VDI: invalid header in '/var/lib/boinc/slots/16/vm_image.vdi'
00:00:05.180354 VMSetError: /build/virtualbox/src/VirtualBox-5.0.0/src/VBox/Storage/VD.cpp(6403) int VDOpen(PVBOXHDD, const char*, const char*, unsigned int, PVDINTERFACE); rc=VERR_VD_VDI_INVALID_HEADER
00:00:05.180369 VMSetError: VD: error VERR_VD_VDI_INVALID_HEADER opening image file '/var/lib/boinc/slots/16/vm_image.vdi'
00:00:05.180401 VMSetError: /build/virtualbox/src/VirtualBox-5.0.0/src/VBox/Devices/Storage/DrvVD.cpp(3139) int drvvdConstruct(PPDMDRVINS, PCFGMNODE, uint32_t); rc=VERR_VD_VDI_INVALID_HEADER
00:00:05.180409 VMSetError: Failed to open image '/var/lib/boinc/slots/16/vm_image.vdi' in read-write mode
00:00:05.180421 VD: Opening the disk took 4823159159 ns
...

/var/lib/boinc/slots/16/vm_image.vdi is owned and only writable by boinc:

$ ls -lh /var/lib/boinc/slots/16/vm_image.vdi
-rwxr-xr-x 1 boinc boinc 1.2G Aug 12 17:23 /var/lib/boinc/slots/16/vm_image.vdi

I am not clear why this would fail because VirtualBox is started by user boinc.

Edit: One potential issue might be that VirtualBox on Arch is version 5.0.0 while Boinc has likely been tested and developed with older versions. Maybe 5.0.0 just doesn't support this disk image format?

Last edited by fax (2015-08-14 12:43:36)

Offline

#4 2015-08-14 13:33:55

fax
Member
Registered: 2013-01-07
Posts: 16

Re: [SOLVED] How to configure Boinc for apps that require VirtualBox?

fax wrote:

One potential issue might be that VirtualBox on Arch is version 5.0.0 while Boinc has likely been tested and developed with older versions. Maybe 5.0.0 just doesn't support this disk image format?

Yep, Atlas@Home is definitely not compatible with VirtualBox 5.0.0. I uninstalled VirtualBox 5.0.0 with pacman and installed VirtualBox 4.3.30 manually from Oracle's generic Linux package. Now it seems to be running fine.

(I couldn't downgrade the Arch packages because the VirtualBox 4.3.28 packages I still had in my cache depend on a Linux kernel less than 4.1.)

Offline

Board footer

Powered by FluxBB