Bug #801

lttng-sessiond: invalid error handling in cmd_start_trace()

Added by Nikita Yushchenko about 6 years ago. Updated about 6 years ago.

Target version:
Start date:
Due date:
% Done:


Estimated time:


Currently cmd_start_trace() sets session->enabled flag unconditionally, and does not clear it on error paths.
So if for whatever reason further actions fail, session->enabled flag is left set, and new session start is not possible.

In the following example we first tried to enable all events, but that failed due to extremely low memory in target. We then tried to enable only some events, and start operation did not start tracing (but claimed that tracing was already started).

root@Squalus:~# lttng create --snapshot trace1
Spawning a session daemon
Warning: No tracing group detected
Session trace1 created.
Default snapshot output set to: /home/root/lttng-traces/trace1-20140523-002816
Snapshot mode set. Every channel enabled for that session will be set in
overwrite mode and mmap output.

root@Squalus:~# lttng enable-event -a -k
All kernel events are enabled in channel channel0

root@Squalus:~# lttng start
PERROR [3759/3811]: ioctl start session: Cannot allocate memory (in
kernel_start_session() at kernel.c:410)
Error: Starting kernel trace failed

root@Squalus:~# lttng disable-event -a -k
PERROR [3759/3811]: disable kernel event: Bad file descriptor (in
kernel_disable_event() at kernel.c:342)
Error: Cannot disable syscall tracing for existing session. Please destroy
session instead.
All kernel events are disabled in channel channel0

root@Squalus:~# lttng enable-event sched_switch,sched_process_fork -k
kernel event sched_switch created in channel channel0
kernel event sched_process_fork created in channel channel0

root@Squalus:~# lttng start
Warning: Tracing already started for session trace1


Updated by David Goulet about 6 years ago

  • Status changed from New to Confirmed

Updated by David Goulet about 6 years ago

  • Target version set to 2.3

Updated by David Goulet about 6 years ago

  • Status changed from Confirmed to Resolved
  • % Done changed from 0 to 100

Applied in changeset tools|commit:d0c66a34ba4c0e20b3af0f81761099b6b6a9adc1.

Also available in: Atom PDF