+2018-04-30 lttng-tools 2.9.9 (CERN announces WWW protocols will be free)
+ * Add DBG statement for TCP keep-alive options
+ * Fix: failure to launch agent thread is not reported
+ * Fix: agent may not be ready on launch
+ * Fix: lttng logs nanoseconds
+ * Fix: stream_per_chan_id_ht should allow duplicates
+ * Fix: relayd send_command() util not logging on failure
+ * Fix: kernel snapshot handling of EAGAIN
+ * Fix validate_trace_empty test check
+ * Fix: hold consumer socket lock for consumer_send_msg
+ * Fix: use off_t type for lseek function return value to avoid overflow
+
+2018-03-26 lttng-tools 2.9.8 (Purple Day)
+ * Fix: set errno with value from SO_ERROR on error.
+ * Fix: missing value handling for lttng_event_context_type
+ * Fix: Use SOL_SOCKET level for SO_KEEPALIVE on all platform
+ * Fix: error out on leftover arguments
+ * Fix: reply to version check even on protocol mismatch
+ * Fix: error handling on relay version check
+ * Document add-context limitation for started session
+ * Fix: add-context cannot be performed after a session has been started
+ * Fix: duplicated kernel consumer socket locking
+ * Fix: remove unused event types in MI XML schema
+ * Tests: cleanly exit from test apps on reception of SIGTERM
+ * Document consumer socket locking assumptions
+ * Fix: consumer socket lock not held during snapshot record
+ * Fix: set_relayd_for_snapshot does not acquire the consumer socket lock
+ * Document the locking assumptions of consumerd-relayd socket passing
+ * Assert that the consumer lock is held while sending FDs to consumerd
+ * Assert that the consumer socket lock is taken during communication
+ * Tests: refuse to run test suite if lttng processes are present
+ * Fix: metadata channel leak when using the snapshot tracing mode
+
+2018-02-05 lttng-tools 2.9.7
+ * Fix: do not flag consumer as disabled on relayd comm failure
+ * Fix: cleanup inactive FDs in the consumer polling thread
+ * man: document dead-peer detection for lttng-relayd
+ * lttng-relayd: use TCP keep-alive mechanism to detect dead-peer
+ * Fix: unknown consumer type considered a libc error
+ * Fix warning: src/bin/lttng/utils.c: cast incompatible pointer
+ * Fix: src/common/pipe.h: include <sys/types.h> for ssize_t and mode_t
+ * Fix: detect dlmopen() and disable corresponding tests if not available
+ * Fix: resolve full path of LTTNG_UST_CLOCK_PLUGIN
+ * lttng-enable-event(1): filtering: specify that `$ctx.cpu_id` is available
+ * Fix: Make version.h generation work with dash
+ * Fix: buffer overflow warning in python bindings
+ * Tests fix: BT2 does not output the metadata of a trace collection
+
+2017-08-03 lttng-tools 2.9.6 (Watermelon Day)
+ * Fix: uninitialized return value on error path
+ * Fix: ensure kernel context is in a list before trying to delete it
+ * Fix: ambiguous ownership of kernel context by multiple channels
+ * Fix: ret is never used on error_open code path
+ * Fix: use error code path instead of break when errors happen before execl
+ * Fix: wrong variable assignment on error
+ * Fix: missing error handling in use of print_tabs()
+ * Fix: ret is used instead or err to set an error code
+ * Fix: report error using fd instead of ret
+ * Fix: NULL passed to memcpy in error path
+ * Fix: lost packet accounting always lost on snapshot
+ * Fix: report error on session listing
+ * Fix live-comm: merge TCP socket write-write sequence in a single write
+ * Fix: join consumer timer thread
+
2017-06-14 lttng-tools 2.9.5 (National Bourbon Day)
* Fix: test_utils_expand_path passes NULL to sprintf
* Fix: lttng list of channels should return errors