Skip to content

Releases: sosy-lab/benchexec

Release 3.14

07 Nov 12:55
3.14

Choose a tag to compare

  • Added a workaround for the known glibc deadlock described in #656.
    In most cases BenchExec should detect the deadlock and continue benchmarking after a timeout of 60s.
  • We noticed a performance problem in Python that affects benchexec in container mode on machines with many cores and added an optimization that reduces its impact.
  • Improved handling of non-existent mount points.
    This makes BenchExec easier to use within Podman containers, and we now recommend Podman over Docker in our documentation.
  • table-generator no longer attempts to spawn a large number of threads (failing due to the limit on open files) on machines with many cores.
  • Many new and improved tool-info modules.

This release does not change the minimum supported Python version, but we would like to remind you that BenchExec will soon stop supporting Python 3.6.

Release 3.13

07 Sep 09:10
3.13

Choose a tag to compare

  • More robust handling of child cgroups created within a run
    Note that it is not safe to execute an untrusted tool inside a BenchExec run and give it access to cgroups (e.g., with --no-container or --full-access /sys/fs/cgroups).
    However, some users want to execute trusted tools with cgroup access (e.g., nesting runexec) and we aim to support this.
    It was found that BenchExec could hang or crash in certain cases where child cgroups were created by the process within a run and used to freeze processes (done by nested runexec, for example), or were made inaccessible using file-system permissions.
    This lead to incomplete run cleanup and processes left running or hanging in an unkillable state.
    This release fixes such situations and users who allow cgroup access within runs are strongly recommended to upgrade.
  • Fix incomplete rewriting of numbers into roman numerals in the new LaTeX output for statistics.

This release does not change the minimum supported Python version, but we would like to remind you that BenchExec will soon stop supporting Python 3.6.

Release 3.12

21 Jul 13:45
3.12

Choose a tag to compare

  • Compatibility with Python 3.10
    Note that it is expected that this is one of the last releases that supports Python 3.6.
  • Export of statistics as LaTex commands in table-generator:
    All those values that exist in the statistics table on the Summary tab of our HTML tables can be exported as a series of LaTeX commands with --format=statistics-tex.
    These can then be included in a paper and the commands can be used to retrieve the statistics values (documentation).
    The script contrib/statistics-tex.py that provided a subset of this functionality so far is removed.
    Thanks to @Sowasvonbot for implementing this!
  • Slight improvements for mounting overlayfs:
    • Avoid redundant mount points that could prevent certain nested mounts.
    • Avoid a warning in the kernel log.
  • Fix handling of non-printable characters in environment variables.
  • Slight improvements for the HTML tables:
    • Use of color for categories in filters
    • More informative tooltip in quantile plots (thanks @leventeBajczi)
  • Added and improved tool-info modules

Release 3.11

09 Feb 12:48
3.11

Choose a tag to compare

This release brings one major feature for the HTML tables:
The statistics on the summary tab are now updated on-the-fly if filters are applied and always take those filters into account (i.e., only show statistics about the selected rows). We update the row name in the statistics table to indicate this, but still be aware of it if you are accustomed to the previous behavior! This was also the last place in the HTML tables where filters were not respected, so now filters are taking into account consistently wherever data are shown or used.
Thanks to @DennisSimon for implementing this!

There are also a few other improvements and fixes:

  • Fix loading logs from local HTML tables in Chrome/Chromium.
  • Update hint on which Firefox setting to change for access to logs from local HTML tables.
  • When loading logs from local HTML tables fails, show a hint on how to start a small HTTP server with Python and let it serve the table and logs. Using this server to access the table from the browser instead of file:// URLs will make the log access work regardless of browser versions and configuration options. The shown hint even includes a command line that just needs to be copy-and-pasted.
  • Fix sliders jumping around in the filter sidebar when defining filters for numeric columns.
  • Some tool-info modules were improved.

On 2022-03-11 a new build of the binary Debian package with version 3.11-2 was added here. This version differs only in how the Debian package is compressed and should now work on Debian again and not only on Ubuntu.

Release 3.10

23 Nov 09:38
3.10

Choose a tag to compare

  • Fix bug in HTML tables where content of a cell could be visible through another cell when scrolling horizontally.
  • Slightly improved error handling and error messages regarding cgroup permissions, cgroupsv2, and invalid directory modes.
  • Improved handling of debug log (--debug).
    Previously, every transferred output file of the tool was logged, which would lead to large debug logs in case a tool produced many files.
    Now we log only the names of at most 1000 such output files.
  • Many new and improved tool-info modules.
  • The default branch of the git repository has been renamed to main.
    Please adjust forks and checkouts if required.

Release 3.9

28 Sep 14:13
3.9

Choose a tag to compare

  • Improved container mode to make it work more easily inside LXC containers.
  • The scatter plot in HTML tables produced by table-generator can now show a linear-regression graph using ordinary least squares.
    A tooltip shows more information such as the regression coefficient.
  • The library that is used for rendering the actual tables in the HTML tables got a major upgrade, which required some work.
    If you notice any regression in table behavior, please file an issue.
  • One new tool-info module.

For people using the git repository of BenchExec:
Immediately after the release of BenchExec 3.9, the default branch of the repository will be renamed to main.
Please adjust forks and checkouts if required.

Release 3.8

19 May 14:23
3.8

Choose a tag to compare

This release works only on Python 3.6 and newer!

  • Add possibility to have a close() method to tool-info modules.
  • The test_tool_info utility now has a --debug argument that will show the debug log, e.g., from the tool-info module.
  • Fix bug in detection of CPU throttling during benchmarking, for which we warn if we detect it.
    This did not work for cases with core numbers longer than one digit.
  • Properly escape the suggested command line for running table-generator that is shown by benchexec before it terminates.
  • Allow specifying path to libseccomp via environment variable LIBSECCOMP.
    This is useful for environments like NixOS.
  • Fix handling of empty result files in table-generator, the generated HTML tables will work again.
  • Fix handling of empty run results when filtering rows in HTML tables.
  • Make filters for status and textual columns in HTML tables work if filter string contains a colon.
  • When entering a filter in the HTML tables' filter row, do not loose focus on the input field when applying the filter, such that users can continue typing.
  • Fix invalid values shown in score-based quantile plot if some runs of a table do not have a score value.
    Now a run set is only shown in a score-based quantile plot if all values have scores (otherwise the plot would be misleading).
  • Text selection now works as expected while an overlay window is open in the HTML tables (only text in the overlay will be selected).

Release 3.7

21 Apr 12:56
3.7

Choose a tag to compare

This is expected to be the last BenchExec release that supports Python 3.5, newer releases will require Python 3.6 or newer.
Please cf. issue #717 for our plan on dropping support for further Python versions.

We would like to note that Linux kernel 5.11 brings a major improvement for BenchExec users not on Ubuntu:
Now it should be possible to use the overlayfs feature as a regular user, no need to pass --read-only-dir / and similar parameters.
We updated our installation instructions accordingly and also clarified that BenchExec requires x86 or ARM machines and recommend Linux kernel 4.14 or newer due to reduced cgroups overhead.

Changes in this release:

  • In HTML tables, the following settings are now stored in the hash part of the URL:
    • Column sorting
    • Page size of the table, i.e., how many rows are shown
    • Filters for task names that are defined by entering text into the left-most input field of the filter row of the table.
      Previously this would only work for task-name filters defined in the filter sidebar.
      This means that using the back/forward navigation of the browser will change these settings and that they can be present in shared links.
  • Fix a few cases of printing of statistics information in HTML tables.
    This affects corner cases like the number of visible decimal digits for 0 and trailing zeroes for the standard deviation in the tooltip.
  • When a user requests rounding to a certain number of decimal digits, the filtering functionality of the HTML tables will now use the raw values, not the rounded values.
    This is consistent with the behavior when rounding is not explicitly requested and BenchExec applies the default rounding rules.
  • Fix harmless stack trace printed at end of benchexec execution in cases like of early termination, e.g., if the tool could not be found.
  • Some improvements to tool-info modules.
  • Several updates of JS libraries, but this should not bring user-visible changes.

Release 3.6

11 Dec 15:13
3.6

Choose a tag to compare

  • One tool-info module improved.

Release 3.5

03 Dec 09:41
3.5

Choose a tag to compare

  • One tool-info module improved.