-
Notifications
You must be signed in to change notification settings - Fork 19
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
Replace Docker with Sandbox.jl #91
Conversation
|
||
cmd = `docker run --rm` | ||
# XXX: even when preferred_executor() returns UnprivilegedUserNamespacesExecutor, |
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.
This was with the lock around the global executor cache from JuliaContainerization/Sandbox.jl#15
close(output.in) | ||
|
||
# pass the script over standard input to avoid exceeding max command line size, | ||
# and keep the process listing somewhat clean | ||
println(input, script) | ||
close(input) | ||
|
||
function stop() | ||
if process_running(proc) | ||
# FIXME: if we only kill proc, we sometimes only end up killing the sandbox. |
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.
This happens even with SIGINT, which sandbox.c
probably should handle (i.e. forward to its child).
Will need some additional work before we can deploy this to Nanosoldier. I checked a couple, and most are PyCall not working due to JuliaContainerization/Sandbox.jl#16, and curl verification errors (probably because I compared backports-1.6 against 1.6.0). |
This makes it possible to import the data without requiring PkgEval.
Now that JuliaContainerization/Sandbox.jl#16 is closed, is it worth doing another run to see how much the failures go down? |
Also, I'm assuming that this PR fixes #84? |
Some remaining failures:
|
With JuliaContainerization/Sandbox.jl#28, we get:
Some interesting ones:
Finally, a lot of packages expect a working build system, including build_essentials (make, gcc, configre, m4, patch), gfortran. I guess we should include those in the PkgEval rootfs, for the purpose of good package coverage, even though I'd like to really advocate Artifacts here... |
With the expanded rootfs, and a proper home folder and user: In summary, 79 packages now succeed, while 91 have started to fail. No failures stand out at this point, so when the Sandbox stuff lands I'll be looking into getting this deployed. |
9b0c1fe
to
7b28d20
Compare
This reverts commit d40e757. Memory limits don't work on cgroup2, libuv/libuv#2323, and the CPU quota seems to incur a serious overhead. Since we can just use taskset, let's leave out the systemd-approach for now.
Needs JuliaContainerization/Sandbox.jl#15.