-
Notifications
You must be signed in to change notification settings - Fork 460
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
vboxwrapper: create the 'virtualbox home directory' in the project dir #6018
base: master
Are you sure you want to change the base?
Conversation
As far as I can tell this dir is used only on Win; we run VBoxSVC.exe there, and look for a log file later. Should we remove it for other platforms? Also: there's some code to create a 'scratch' dir, projects/scratch. This seems like a bad idea; we shouldn't put random stuff in projects/, and also if there are multiple VM jobs they share the same dir. Should we get rid of this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copilot wasn't able to review any files in this pull request.
Files not reviewed (1)
- samples/vboxwrapper/vbox_vboxmanage.cpp: Language not supported
This is the latest result with the 26209 (compared to the code): 2025-01-22 22:54:38 (13555): 2025-01-22 22:54:38 (13555): Can someone supply me this file compiled for testing? |
I'm not sure the changes I've been making (involving the 'virtualbox home directory') On the Mac, BOINC jobs run as a 'hidden user', boinc_project. I'm confused.
|
Yes it did work. When I switch to the 26207b wrapper, tasks are running but failing due to network connection..
Here I have the trace and replay of the task: The task: |
I can't see (in those logs) any problems except the cvmfs connect failure, |
That is true. The error I sent earlier here (Command: VBoxManage -q list systemproperties) is with the new wrapper. I'm trying to debug it now on my Mac. I cannot find it. With automatic launch of the wrapper, the project fails immediately after start. https://lhcathome.cern.ch/lhcathome/result.php?resultid=419017986 New info, the VirtualBox home directory is changed. The folder is made (without the .). BOINC is not allowed to create .VirtualBox on Mac since this is system only! (VirtualBox is allowed) https://lhcathome.cern.ch/lhcathome/result.php?resultid=419018059 The folder for the VirtualBox settings need to be changed since VirtualBox places them in ~ of which is not allowed for other users. I'm tired now. Going to bed and will try to continue tomorrow with testing on this. |
I just archived a couple of logs from the LHC@home server before they disappear.
I remember even @NenTech had valids reported by the previous app versions using vboxwrapper 26207 (unfortunately the logs are not available any more). This recent result from @NenTech failed although vboxwrapper 26207 has been used: Very unlikely that it is caused by the vdi file since
Host internal networking appears to work since "Mounting the shared directory" succeeded. The Hypervisor System Log reports lots of this: Could it be the app version setup? Another log from @NenTech's computer reports this:
Not sure why this points to the user's directory. |
don't merge for now |
@computezrmle
I did the testing with normal user account and via BOINC. The results with all versions of the wrapper are the same via normal user account as the 26207b via BOINC.
Found the error and I have it fixed in my version 26210! There is still 1 issue left. User group boinc_project is not allowed to create the directory VirtualBox in BOINC_data. |
I'm surprised, since I believe all project applications run as user boinc_master and group boinc_project, and are able to traverse the directory tree into the slots and project directories and successfully create files in those subdirectories. I don't see any indication in the referenced result log. How do you know that VBoxWrapper is failing to create the directory due to a permission error? |
This is based on my reading of the current setprojectgrp.cpp, which is invoked using switcher in set_to_project_group() in sandbox.cpp which in turn is called from both ACTIVE_TASK::start() and ACTIVE_TASK::setup_file() in app_start.cpp as well as other places. |
The 'VBox home directory' is where VBox writes log files (which are read by vboxwrapper). If this is not specified by the env var VBOX_USER_HOME, we need to create it somewhere and set the env var to point there. Previously we put it in <datadir>/projects. That's no good because it's not a project, and the client erased it. We also tried putting it in the (real) user's home dir. That's no good because 1) we shouldn't mess with the home dir 2) in sandboxed configs we're running as user 'boinc_projects', and don't have access to the home dir. According to https://boinc.berkeley.edu/sandbox_design.php, the only places 'boinc_projects' can write are projects/, slots/, and their subdirectories. So the logical places to put .VirtualBox are this job's slot directory, or its project directory. I chose the latter.
According to https://boinc.berkeley.edu/sandbox_design.php, I'm submitting a PR for vboxwrapper where it creates .VirtuaBox |
I think this should work, but I can't currently test it. |
The 'VBox home directory' is where VBox writes log files
(which are read by vboxwrapper).
If this is not specified by the env var VBOX_USER_HOME,
we need to create it somewhere and set the env var to point there.
Previously we put it in /projects.
That's no good because it's not a project, and the client erased it.
We also tried putting it in the (real) user's home dir.
That's no good because
and don't have access to the home dir.
According to https://boinc.berkeley.edu/sandbox_design.php,
the only places 'boinc_projects' can write are
projects/, slots/, and their subdirectories.
So the logical places to put .VirtualBox are
this job's slot directory, or its project directory.
I chose the latter.