Benchexec

Latest version: v3.26

Safety actively analyzes 681775 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 11

3.26

This release brings several important fixes for cgroups v2
and all users on systems with cgroups v2 are strongly recommended to upgrade.

- Fix regression from BenchExec 3.25 for detecting memory-limit violations of a run.
The changes related to the LXCFS integration in the last version caused the
problem that a run that hit the memory limit was no longer marked as "out of memory"
but as "failed" and did not have any measurement results
(only for cgroups v2 and with container mode enabled).
Note that the memory limit was still correctly working
and also measurements produced for non-failed runs were correct.
- Fix AssertionError when creating a systemd scope for cgroups v2 usage.
This was caused by a race condition and did occur only with a certain probability
depending on the system load.
- Fix warning about left-over cgroup during run cleanup for cgroups v2.
- More robust cleanup of cgroups created by the benchmarked process.
- Fix installation of our Python package on Windows.
- Several new and improved tool-info modules.

3.25

Not secure
- Support for fuse-overlayfs as alternative to kernel-based overlayfs
BenchExec uses overlayfs for providing a virtualized file-system
in its containers (unless configured otherwise by the user).
Unfortunately, the overlayfs implementation in the Linux kernel
does not support all use cases such as overlayfs for the root directory
or triple-nested containers (cf. 776 and 1067).
Now BenchExec makes use of the alternative implementation
[fuse-overlayfs](https://github.com/containers/fuse-overlayfs/)
if installed in version 1.10 or newer as an automatic fallback when necessary.
This makes BenchExec work again in its default configuration
without requiring parameters like `--read-only-dir /`.
We are glad about this long-awaited feature
being contributed by [GSoC participant](https://summerofcode.withgoogle.com/programs/2024/projects/UzhlnEel)
[younghojan](https://github.com/younghojan)! Thanks!
- Improve LXCFS integration
If installed, BenchExec uses [LXCFS](https://github.com/lxc/lxcfs)
to provide a better virtualization of the environment visible inside the container,
for example by virtualizing the uptime.
Now we use LXCFS also to virtualize CPU information in `/proc/cpuinfo`
and `/sys/devices/system/cpu`.
This allows the benchmarked process to see more easily
how many CPU cores they are allowed to use.
- New tool-info module for `super_prove`.

3.24

Not secure
- Duplicate tasks in benchmark definitions ignored.
Inside a single `<tasks>` tag in a benchmark definition it can happen
that a specific task is included more than once.
These copies of the task would be exactly identical and thus redundant,
but they also create problems for benchmarking because they violate
the assumption that tasks have unique identifiers.
So now `benchexec` simply ignores such duplicates of tasks.
This makes it easier to write benchmark definitions with broad wildcards,
for example if you want to include both `foo*.yml` and `*foo.yml`
but some tasks match both wildcards.
- Two new tool-info modules for KeY CLI and Pono.

The HTML tables produced by `table-generator` also contain a major
technical improvement thanks to our GSoC participant [EshaanAgg](https://github.com/EshaanAgg),
but no user-visible changes.

3.23

Not secure
As announced previously, this release works only on Python 3.8 and newer!

- Fix a potential crash for CPAchecker when using `/usr/bin/cpachecker`.

3.22

Not secure
**This will be the last release of BenchExec to support Python 3.7.**
Future versions will require Python 3.8,
and in 2025 we are planning to drop support for Python 3.8 and 3.9.
Please [comment here](https://github.com/sosy-lab/benchexec/issues/986)
if these plans would create problems for you.

BenchExec is now available as an
[official package in the NixOS distribution](https://github.com/sosy-lab/benchexec/blob/main/doc/INSTALL.md#nixos).
Thank you [lorenzleutgeb](https://github.com/lorenzleutgeb)!

- BenchExec now handles new restrictions imposed by Ubuntu 24.04.
Our Ubuntu package is recommended for installation
because it automatically does everything for making BenchExec work out of the box.
Users of other installation methods need to tweak their system config,
and both our documentation and the error message of BenchExec
now inform about what is necessary. Thank you [younghojan](https://github.com/younghojan)!
- BenchExec is now easier to use on systems without systemd but with cgroups v2.
This is a common situation in containers,
and BenchExec will now automatically use the `/benchexec` cgroup
if it exists and has no running processes.
This makes it unnecessary to manually start BenchExec in a fresh cgroup,
but the `/benchexec` cgroup still needs to be created upfront.
We give examples how to do this in our
[documentation](https://github.com/sosy-lab/benchexec/blob/main/doc/benchexec-in-container.md).
- Several robustness improvements to BenchExec's container mode for non-standard environments.
This covers for example containers with invalid cgroup mounts,
systems with procfs mounts in several places, missing DBus, and Docker Desktop.
- Several fixes and improvements for the HTML tables produced by `table-generator`.
Thank you [EshaanAgg](https://github.com/EshaanAgg) and [JawHawk](https://github.com/JawHawk)!
- Filters for text columns are now case insensitive.
- Plots now have a reset button for clearing configuration changes.
- Text filters now work even if special characters like `_` or parentheses are used.
- Changes to the plot configuration no longer break the application
if it was opened from paths with spaces and other special characters.
- The drop-down area for status filters now immediately shows the correct value
when opening a table via a link with preconfigured filters.
- The filter for the left-most column is now correctly usable again
after a task-id filter in the filter sidebar was set and cleared.
- Fix handling of tools that read from stdin when asked to print their version.
In such a case, the tool (and thus BenchExec) would previously hang
but now stdin of the tool is connected to `/dev/null`
(just like during the actual execution) and the tool immediately gets EOF.
- Improvements to our documentation.
We now have a [quickstart tutorial for `runexec`](https://github.com/sosy-lab/benchexec/blob/main/doc/quickstart.md)
and a [guide specifically for executing BenchExec in containers](https://github.com/sosy-lab/benchexec/blob/main/doc/benchexec-in-container.md).
Thank you [incaseoftrouble](https://github.com/incaseoftrouble)!
- Improvements for several tool-info modules.
- Integration of BenchExec and the cluster management tool SLURM.
It is not officially part of BenchExec and we do not provide any guarantees related to it,
but our repository now contains an
[integration of BenchExec and SLURM](https://github.com/sosy-lab/benchexec/tree/main/contrib/slurm)
that users of SLURM might find helpful. Thank you [leventeBajczi](https://github.com/leventeBajczi)!
Further contributions in this area are also welcome.

We celebrate that this release
sets a new record for contributions from non-maintainers
and thank all contributors!

3.21

Not secure
- `table-generator` computes scores according to SV-COMP'24 scoring scheme.
This changes only the scoring for witness-validation results.
- Support for property files at HTTP(S) URLs in `table-generator`.
Tables can already be produced not only from local result files,
but also from files that are downloaded on the fly.
Now this also works for results with property files.
- Fix for tool-info module `witnesslint`.

Page 1 of 11

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.