Hi everyone!

Two weeks after having released Babeltrace 2’s first release candidate, today we’re releasing Babeltrace 2.0.0-rc2.

What’s new since Babeltrace 2.0.0-rc1?

Improvements

General
  • Introduce BT_ASSERT_DBG() for assertions that must only be evaluated in debugging mode (when the BABELTRACE_DEBUG_MODE environment variable is set to 1 at configuration time).

    BT_ASSERT() assertions are now always evaluated, regardless of the debugging/production mode.

    This change’s purpose is to keep as many slow-path assertions as possible to detect more Babeltrace 2 programming errors, even in production.

    See 98b15851.

  • Remove ABI versioning in Babeltrace 2 shared object plugins as we don’t need this property.

    See 7c0244d6.

  • In libbabeltrace2’s API:

    • Rename BT_RANGE_SET_ prefixes to BT_INTEGER_RANGE_SET_.

      See eb171ee9.

    • Make bt_version_get_major(), bt_version_get_minor(), and bt_version_get_patch() functions return unsigned int instead of int.

      See 78deb913.

    • Remove the BT_GRAPH_RUN_STATUS_END status code: bt_graph_run() now returns BT_GRAPH_RUN_STATUS_OK when all the graph’s sink components are ended.

      See 9669d693.

ctf plugin

Append error causes at more source locations.

This means more precise error messages reported by the babeltrace2 CLI tool, for example.

source.ctf.fs component class

Return an error when failing to load or create an index for a trace.

See 29a8227a.

filter.lttng-utils.debug-info component class

Create stream classes and event classes which correspond to stream classes and event classes in incoming trace classes as soon as we encounter a new trace class, rather than as needed.

See db5d746d.

Python bindings

In bt2.Graph.add_component(), validate that the params parameter is implicitly convertible to a bt2.Mapvalue object (dict, for example).

See 401b7022.

Bug fixes

General

Fix many issues reported by static analysis tools (scan-build, Coverity, and compiler warnings).

source.ctf.fs component class

Fix an index handling bug which occured when multiple data stream files in a CTF trace belong to the same data stream.

See ce75de14.

source.ctf.lttng-live component class

Fix a bug in which a disappearing LTTng live tracing session could lead to an assertion failure.

See ba90bce7.

Python bindings

Fix an assertion failure which occurs when a trace or trace class destruction listener raises an exception.

See 64961f8b.

Upcoming

We are still hard at work putting the finishing touches on our way to the final 2.0.0 release.

We invite you to try this release candidate and report any problems you may encounter to the lttng-dev@lists.lttng.org mailing list or through the Babeltrace bug tracker.

Documentation

We are currently documenting the entire Babeltrace 2 C API to make the development of new component classes as easy as possible.

We’ll also work on the Python bindings documentation.

The documentation of the API will be made available on the official Babeltrace website.

Other tasks

  • Improve test coverage.

  • Improve resilience to corrupted/malformed CTF traces.

  • Minor internal cleanups and bug fixes.