From: Mathieu Desnoyers Date: Tue, 15 Apr 2014 17:05:34 +0000 (-0400) Subject: Fix: pass proper args when writing commit counter X-Git-Tag: v2.5.0-rc1~14 X-Git-Url: https://git.lttng.org/?a=commitdiff_plain;h=80249235cb6560c6bb915f1cd486aa5017f87456;hp=80249235cb6560c6bb915f1cd486aa5017f87456;p=lttng-ust.git Fix: pass proper args when writing commit counter lib_ring_buffer_write_commit_counter()'s 'buf_offset' argument should contain offset of beginning of area used by the record being comitted. However, lib_ring_buffer_commit() passes ctx->buf_offset, that gets advanced by lib_ring_buffer_write() and thus points to just-after- end-of-record at lib_ring_buffer_commit() time. This causes lib_ring_buffer_write_commit_counter() to return without changing commit_hot[idx].seq, due to if (unlikely(subbuf_offset(offset - commit_count, chan))) return; Since after-crash data extraction tool checks 'seq' field to find out how much data is in buffer, this results into inavailability of data from partially-filled subbuffer for after-crash analysis. This patch modifies lib_ring_buffer_write_commit_counter() and all its callers to pass and expect the end of the area. So code works as it should, and complete information becomes visible in crash dump. [ Fix ported from lttng-modules. Changelog inspired from Nikita Yushchenko's original patch. ] Fixes #785 Reported-by: Nikita Yushchenko Signed-off-by: Mathieu Desnoyers ---