Fix: UST subbuffers silently dropped on moderate trace traffic
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Tue, 18 Nov 2014 16:33:23 +0000 (17:33 +0100)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Tue, 18 Nov 2014 16:57:29 +0000 (11:57 -0500)
commit5420e5dbd5fd06f2d1ba524d44eed601daef792c
tree1909df2412ec540547ad9b53c8917666bfb0e294
parent50d7299da86d8bb8e2f9e888b70abf528aaca2d8
Fix: UST subbuffers silently dropped on moderate trace traffic

Well, it looks like we really screwed up on this one.

lttng-tools commit 02b3d1769d5f8a33e4109b1e681141c9295dfda6 introduced
an important regression for lttng-ust tracing in the consumer daemon:
after reading a sub-buffer, a check has been added to see whether there
are more sub-buffers available to read, and if it is the case, it
ensures the wakeup pipe will be awakened again.

The issue lies in the use of ustctl_put_next_subbuf() in this check.
This acts as if the sub-buffer has been read, when in reality it has not
been read. It therefore trashes the data contained by this sub-buffer.

This check should use ustctl_put_subbuf(), which does not move the
consumer position.

This is a severe bug, and the fix needs to be applied to stable-2.6,
stable-2.5, and stable-2.4.

Fixes #861

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
src/common/ust-consumer/ust-consumer.c
This page took 0.02548 seconds and 4 git commands to generate.