-
Notifications
You must be signed in to change notification settings - Fork 202
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
Add feature to use podman container when determining version for vcloud-benchmark #1132
Conversation
@ricffb @PhilippWendler I fully support this and confirm that this feature is required for competition execution. This solution looks elegant. |
I am also surprised that this currently works at all (and do not understand why). The If a container image is given as parameter, I think we should never execute the tool outside of this image. So there should be no fallback. And I would actually say that the whole tool-info module should live inside the Podman container (just like it currently lives inside a BenchExec container). The tool-info module's methods are free to do what they want, and for example can call |
@PhilippWendler You are right. Both setups had a |
9a476c6
to
329913c
Compare
329913c
to
ed499c4
Compare
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.
Thanks, the new solution is much better than the previous one. I think it now works in all cases if --tool-directory
is passed and the Python installations inside and outside of the container do not clash.
I have some recommendations on how the code and the podman container can be improved further, but I do not see any crucial problems. So if it is required it could be merged and used, and improvements be added later.
Passing |
de905ee
to
5bf07ad
Compare
2aac8ce
to
dde1397
Compare
Please do not mark comment threads that were created by others as "resolved". The respective reviewer should close it once they agree that their comments are sufficiently addressed. Any other process has a high risk of missing open problems and creates a high mental load for reviewers for keeping track of what they still need to check. |
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.
Can be merged as soon as CI is green.
Would still better to get a more strictly isolated container, though, for example without network access (currently tools do not have network access, but this container allows it).
e49b2fe
to
a9aa5b2
Compare
The setup function now takes the config as argument as well.
37b3140
to
195dada
Compare
Many thanks @ricffb and @PhilippWendler ! I merged it now because I needed it already now. |
This MR adds extra functionality for the vcloud-benchmark.py.
Some tools like PeSCo crash under newer linux versions even while obtaining the version.
And in this case the crash even causes the entire benchmark execution to fail (since it causes a index out of bounds directly in the tool info module). These tools are run inside of a podman container in the benchcloud, denoted with the
--vcloudContainerImage
option.I propose to go ahead and also use this image while obtaining the version of the tool.
I manually tested this code with cpachecker, PeSCo, VeriAbs and nacpa. I also tested the fallback by renaming "podman" to "podmans".
I don't know, if we want to make this way of obtaining a Version optional via yet another flag (or if the
--no-container
should serve double duty here).@dbeyer is strongly interested in some form of containering the version retrieval for the Hors Concours runs of SV-COMP25.
I am grateful for feedback how to improve, so that we can swiftly incorporate this feature.
PeSCo also needs the full tool_directory mounted to the container. I expect this from other python based tools aswell.
This is why I added the find_tool_base_dir function that mimics how the find_executable works but tries to determine the candidate that actually won.