Jérémie Galarneau [Mon, 1 Aug 2016 19:27:33 +0000 (15:27 -0400)]
Clean-up: remove negative check against unsigned value
Reported-by Coverity Scan:
CID
1360536 (#1 of 1): Unsigned compared against 0 (NO_EFFECT)
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Mon, 1 Aug 2016 19:16:38 +0000 (15:16 -0400)]
Fix: unchecked init_pipe return value
Reported-by Coverity Scan:
CID
1360533 (#1 of 1): Logically dead code (DEADCODE)
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Mon, 1 Aug 2016 19:07:42 +0000 (15:07 -0400)]
Tests: Unchecked pthread_create return value
Reported-by Coverity Scan:
CID
1360529 (#1 of 1): Unchecked return value (CHECKED_RETURN)
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Mon, 1 Aug 2016 18:39:37 +0000 (14:39 -0400)]
Clean-up: remove useless assignment
Reported-by Coverity Scan
CID
1243048 (#1 of 1): Unused value (UNUSED_VALUE)
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Fri, 22 Jul 2016 19:10:57 +0000 (15:10 -0400)]
Tests: Add tracepoints to libbar, libfoo and libzzz
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Wed, 20 Jul 2016 17:56:38 +0000 (13:56 -0400)]
Fix: Mark ASCIIDOC_ATTRS_CONF as a dependency of man page targets
ASCIIDOC_ATTRS_CONF contains the various paths set by autoconf,
such as datadir, syscondif and prefix, and it may be changed
by the user by invoking ./configure with different options. In
such a case, the man pages should be regenerated to take the new
paths into account.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Julien Desfossez [Tue, 5 Jul 2016 15:50:47 +0000 (11:50 -0400)]
Test the parsing of perf raw context
Only test the parsing of the new option in fast_regression since the
real integration test requires particular hardware and kernel
configuration which might not be available.
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Julien Desfossez [Tue, 5 Jul 2016 15:50:46 +0000 (11:50 -0400)]
Enable perf PMU counters by raw ID
Allow enabling perf PMU counters by raw ID in addition to the generic
list already provided. The format for kernel tracing is
"perf:cpu:raw:rNNN:<name>" and "perf:thread:raw:rNNN:<name> for
user-space. The rNNN format is the same as perf-record(1) where NNN is a
hexadecimal event descriptor in the form of umask+eventsel. The <name>
field to associate a clearer name to the counter.
Example usage on Intel i7-3520M to get the unhalted reference cycles
(eventsel: 0x13c) count at privilege level 0 (umask: 0x00):
lttng add-context -k -t perf:cpu:raw:r0013c:x86unhalted
Result in the trace:
sched_switch: { cpu_id = 3 }, {
perf_cpu_raw_r0013c_x86unhalted =
27632578 }, [...]
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Wed, 6 Jul 2016 19:47:18 +0000 (15:47 -0400)]
Run userspace perf tests on non-x86 platforms
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Wed, 6 Jul 2016 23:39:10 +0000 (19:39 -0400)]
Tests: adjust ust-dl planned test count
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Mathieu Desnoyers [Mon, 4 Jul 2016 22:54:31 +0000 (18:54 -0400)]
Test library load/unload events
Test the lttng_ust_lib:load, lttng_ust_lib:build_id,
lttng_ust_lib:debug_link, and lttng_ust_lib:unload events from
lttng-ust, which track the state of loaded libraries. This ensures we
correctly handle dlopen of libraries with direct dependencies.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Wed, 6 Jul 2016 19:30:45 +0000 (15:30 -0400)]
Add missing ust_app_regenerate_statedump_all stub
This allows the build to succeed in --without-lttng-ust mode.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Wed, 6 Jul 2016 19:22:45 +0000 (15:22 -0400)]
Clean-up: remove unused ust_app_regenerate_metadata_all
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Wed, 6 Jul 2016 18:52:18 +0000 (14:52 -0400)]
Add regenerate command to MI schema
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Julien Desfossez [Tue, 5 Jul 2016 14:54:38 +0000 (10:54 -0400)]
Manpage for the regenerate statedump command
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Julien Desfossez [Tue, 5 Jul 2016 14:54:37 +0000 (10:54 -0400)]
Tests for the regenerate statedump command
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Reviewed-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Julien Desfossez [Tue, 5 Jul 2016 14:54:36 +0000 (10:54 -0400)]
Allow regenerating the statedump of a running session
The "lttng regenerate statedump" command can be used to regenerate the
statedump of a running session whenever needed. This is particularly
useful in snapshot and trace-file rotation modes where the original
statedump may be lost.
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Mathieu Desnoyers [Tue, 5 Jul 2016 14:54:35 +0000 (10:54 -0400)]
Kernel ioctl to regenerate the statedump
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Mathieu Desnoyers [Tue, 5 Jul 2016 14:54:34 +0000 (10:54 -0400)]
UST command to regenerate the statedump
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Julien Desfossez [Tue, 5 Jul 2016 14:54:33 +0000 (10:54 -0400)]
Rename the "metadata regenerate" command to "regenerate metadata"
Prepare the deprecation of the "metadata regenerate" command since we
need to regenerate the statedump as well, so it is more convenient to
have one command to regenerate various session's attributes.
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Wed, 6 Jul 2016 14:09:40 +0000 (10:09 -0400)]
Typo fix: uninitializez ->uninitialized
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Wed, 6 Jul 2016 04:14:26 +0000 (00:14 -0400)]
Fix: handle negative (unlimited) system stack size limits
This also changes the stack size selection policy to select
the largest of:
1) default pthread stack size (dictated by libc)
2) system soft limit
3) 2 MB
This is bounded by the system's hard limit on stack size.
If this limit is smaller than 2 MB, the default size mentionned
in pthread_create(3) for Linux, we warn the user that the daemons
may be unreliable and advise bumping this limit.
Note that is is most likely possible to operate the daemons with
way less than 2MB of stack space. However, this was not
extensively tested.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Tue, 5 Jul 2016 23:19:55 +0000 (19:19 -0400)]
Tests: adjust type declaration test count
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Philippe Proulx [Tue, 5 Jul 2016 21:05:21 +0000 (17:05 -0400)]
Fix: protocol mismatch between UST and tools
Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Tue, 5 Jul 2016 20:27:54 +0000 (16:27 -0400)]
ust-ctl: use fixed-size integer rather than enum
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Philippe Proulx [Mon, 4 Jul 2016 22:24:19 +0000 (18:24 -0400)]
Test UST's autoincrementing enumeration values
Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Philippe Proulx [Mon, 4 Jul 2016 21:48:42 +0000 (17:48 -0400)]
Add support for UST's autoincrementing enum entries
Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Tue, 5 Jul 2016 19:13:15 +0000 (15:13 -0400)]
Tests: eliminate process timeouts from Python tests
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Sebastien Boisvert [Tue, 28 Jun 2016 12:12:59 +0000 (08:12 -0400)]
Fix: English syntax errors in 'lttng status'
Signed-off-by: Sebastien Boisvert <sboisvert@gydle.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Julien Desfossez [Tue, 28 Jun 2016 21:45:52 +0000 (17:45 -0400)]
Test for select, poll and epoll syscall overrides
This test for root_regression checks if the syscall overrides for
select, pselect6, poll, ppoll, epoll_ctl, epoll_wait and epoll_pwait
work as expected on arm and x86 (32 and 64-bit).
There are 11 test cases that check for normal and abnormal behaviour. If
the test system has the Babeltrace python bindings, the test validates
the content of the events, otherwise only the presence of the generated
events is checked.
We also check if kernel OOPS, WARNING or BUG were generated during the
test.
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Thu, 30 Jun 2016 20:37:57 +0000 (16:37 -0400)]
Tests: tap.sh spams tests' output when no plan is set
Some tests are implemented in C (using tap.h) or in Python
and don't use tap.sh's facilities. However, it is sourced
by utils.sh and prints an error message during its clean-up
because a plan was never set.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Michael Jeanson [Wed, 15 Jun 2016 21:18:07 +0000 (17:18 -0400)]
Fix: Set thread stack size to ulimit soft value
Some libc don't honor the limit set for the stack size and use their own
empirically chosen static value. Detect this behavior by checking if the
current stack size is smally than the soft limit and in that case set
the pthread stack size to soft limit value.
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Michael Jeanson [Wed, 15 Jun 2016 21:18:06 +0000 (17:18 -0400)]
Fix: location of various standard headers
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Michael Jeanson [Wed, 15 Jun 2016 21:18:05 +0000 (17:18 -0400)]
Fix: missing include ctype.h for isdigit()
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Michael Jeanson [Wed, 15 Jun 2016 21:18:04 +0000 (17:18 -0400)]
Fix: strerror_r behavior is glibc specific
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Michael Jeanson [Wed, 15 Jun 2016 21:18:03 +0000 (17:18 -0400)]
Fix: error.h -> common/error.h
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Michael Jeanson [Wed, 15 Jun 2016 21:18:02 +0000 (17:18 -0400)]
Fix: snapshot del-output with name on musl
Some implementations of strtol(), like the one in musl, will
return EINVAL in errno when no valid number was found in
the string.
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Philippe Proulx [Wed, 15 Jun 2016 21:18:03 +0000 (17:18 -0400)]
Fix: sessiond ht_match_event() check if filter is NULL
It looks like an agent event's filter expression is NULL when
it's created with -a, for example:
lttng enable-event -j -a
Since there's no check for this in ht_match_event(), strlen()
makes the session daemon segfault with this scenario:
lttng create
lttng enable-event -j -a
lttng disable-event -j -a
Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Philippe Proulx [Tue, 21 Jun 2016 20:29:38 +0000 (16:29 -0400)]
configure.ac: fix --enable/disable-kmod option
Now all the following work as expected:
* No option (defaults to --enable-kmod)
* --disable-kmod
* --enable-kmod
* --enable-kmod=no
* --enable-kmod=yes
Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Fri, 17 Jun 2016 21:50:49 +0000 (17:50 -0400)]
Tests: spawn ht_cleanup thread in unit tests
Run the cleanup thread in the unit tests to ensure that the hash
tables are properly cleaned-up even in the context of tests. This
allows us to reliably check for memory leaks in the unit tests.
Jérémie Galarneau [Mon, 27 Jun 2016 19:18:38 +0000 (15:18 -0400)]
Lazily initialize max poll set size
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Fri, 17 Jun 2016 22:09:12 +0000 (18:09 -0400)]
Revert "Assert that a valid clean-up pipe exists on ht_cleanup_push"
This reverts commit
fc41443f7ee5fa95a942d0aedd61c75d622697b5.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Mathieu Desnoyers [Wed, 20 Apr 2016 15:20:00 +0000 (11:20 -0400)]
tests: test ust snapshot with discard buffers
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Mathieu Desnoyers [Wed, 20 Apr 2016 15:19:59 +0000 (11:19 -0400)]
tests: test kernel snapshot with discard buffers
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Mathieu Desnoyers [Wed, 20 Apr 2016 15:19:58 +0000 (11:19 -0400)]
Allow channel mode override in snapshot sessions
Allow the lttng cmd line and liblttng-ctl users to override the channel
mode in snapshot sessions.
Note that liblttng-ctl users expecting that an "overwrite" mode
explicitly set at the value "0" (discard) for a snapshot session will
now create a channel in discard mode.
The DEFAULT_CHANNEL_OVERWRITE used by liblttng-ctl
lttng_channel_set_default_attr() is changed to "-1".
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Mathieu Desnoyers [Wed, 20 Apr 2016 15:19:57 +0000 (11:19 -0400)]
Fix: validate number of subbuffers after tweaking properties
There are properties that are tweaked by each of ust and kernel channel
create functions after a validation on the number of subbuffers for
overwrite channels. Move validation after those properties
modifications.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Tue, 14 Jun 2016 16:46:02 +0000 (12:46 -0400)]
Use bool type for save command options
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Tue, 14 Jun 2016 16:41:39 +0000 (12:41 -0400)]
Clean-up: harmonize popt option declarations in save.c
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Tue, 14 Jun 2016 16:41:09 +0000 (12:41 -0400)]
Clean-up: move mi_writer declaration with other declarations
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Tue, 14 Jun 2016 16:36:07 +0000 (12:36 -0400)]
Add name omission and output omission on save to lttng-ctl
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Tue, 14 Jun 2016 16:30:37 +0000 (12:30 -0400)]
Express overwrite attribute as a byte in communication protocol
There is no need for 4 bytes to express a boolean state.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Tue, 14 Jun 2016 16:29:24 +0000 (12:29 -0400)]
Assert that a valid clean-up pipe exists on ht_cleanup_push
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Michael Jeanson [Thu, 9 Jun 2016 19:11:33 +0000 (15:11 -0400)]
Fix: do not refer to objects as .o
The extension of object files is platform dependant,
use $(OBJEXT) instead of .o when referring to objects.
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Michael Jeanson [Thu, 9 Jun 2016 19:11:32 +0000 (15:11 -0400)]
Fix: do not link against libtool .o objects
We should not link against libtool objects directly
since they have different names in static or shared
only build. Instead link on the full .la
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Michael Jeanson [Thu, 9 Jun 2016 19:11:31 +0000 (15:11 -0400)]
Fix: Define MANPATH in config.h
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Michael Jeanson [Thu, 9 Jun 2016 16:21:31 +0000 (12:21 -0400)]
Tests: Make warn_processes.sh more portable
Options to pgrep aren't standardised across coreutils
implementations, use a more common option.
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Michael Jeanson [Thu, 9 Jun 2016 16:21:30 +0000 (12:21 -0400)]
Fix: add missing script to dist
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Thu, 9 Jun 2016 20:14:28 +0000 (16:14 -0400)]
Fix: leak of UST app hash tables
The ht_cleanup thread is shut down before the queue of rcu
callbacks is emptied by the rcu_barrier(). Since callbacks added
by call_rcu can push hash tables through the ht_cleanup pipe, we run
into cases where the clean-up thread has been shutdown and
hash tables pushed through the clean-up pipe are leaked.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Wed, 8 Jun 2016 20:42:27 +0000 (16:42 -0400)]
Fix: leak of reply buffer on data pending check
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Wed, 8 Jun 2016 17:31:13 +0000 (13:31 -0400)]
Fix: call xmlCleanupParser to free global libxml2 allocations
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Wed, 8 Jun 2016 17:28:38 +0000 (13:28 -0400)]
Fix: missing "void" parameter of lib constructor and destructor
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Fri, 3 Jun 2016 18:11:44 +0000 (14:11 -0400)]
Docs: fix comment typos in lttng-sessiond's main.c
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Fri, 3 Jun 2016 18:05:21 +0000 (14:05 -0400)]
Fix: lttng-relayd allow binding of privileged ports for non-root users
Non-root users could use authbind to bind to low-numbered ports.
Moreover, the check was inverted; !getuid() will only be true
for the root user.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Mathieu Desnoyers [Thu, 2 Jun 2016 20:27:36 +0000 (22:27 +0200)]
relayd: optimize receive throughput
For channels configured with large sub-buffer size, the relayd copies
the entire trace sub-buffer (trace packet) into a large buffer, and then
copies the large buffer to disk. It is inefficient from a point of view
of cache locality.
Use a 64k buffer on the stack instead, and move the data piece-wise.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Thu, 2 Jun 2016 10:13:48 +0000 (06:13 -0400)]
Clean-up: harmonize kernctl API error checking
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Thu, 2 Jun 2016 21:36:03 +0000 (17:36 -0400)]
Introduce LTTNG_IOCTL_CHECK and LTTNG_IOCTL_NO_CHECK macros
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Thu, 2 Jun 2016 09:56:28 +0000 (05:56 -0400)]
Fix: enforce assumption that lttng-modules ioctl() return <= 0
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Thu, 2 Jun 2016 09:19:50 +0000 (05:19 -0400)]
Fix: reduce scope of kconsumer consumed_pos and produced_pos
The consumed_pos and produced_pos accesses are protected by the
stream mutex, which is fine as-is. However, consumed_pos is
passed to consumer_get_consume_start_pos() and is flagged by
Coverity as a possible use of a "stale" consumed_pos.
From an analyzer's standpoint, this makes sense since
both lttng_kconsumer_get_produced_snapshot() and
lttng_kconsumer_get_consumed_snapshot() could leave their output
parameter uninitialized and return 0 since they both assume that
ioctl() will set errno if ret != 0.
IOCTL(3P) specifies that errno is only set if ret < 0.
A bug in lttng-modules could cause ioctl() to return a positive
value, leaving the errno variable unset. In such a case,
both functions would return 0, leaving the positions uninitialized.
A follow-up fix enforces this assumption (ret never > 0) as part
of the kernctl API.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Thu, 2 Jun 2016 09:03:26 +0000 (05:03 -0400)]
Docs: document safety of consumer_thread_is_ready access
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Thu, 2 Jun 2016 08:38:43 +0000 (04:38 -0400)]
Clean-up: unused ret values in thread_manage_health
Reported by Coverity as:
CID
1243014 (#1 of 15): Unused value (UNUSED_VALUE)
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Thu, 2 Jun 2016 08:18:36 +0000 (04:18 -0400)]
Clean-up: remove dead code in sessiond's set_option()
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jonathan Rajotte [Thu, 26 May 2016 22:14:37 +0000 (18:14 -0400)]
Fix: set the logger level to prevent unexpected level inheritance
BSF and other jars can ship with an embedded log4j.properties
file. This causes problem when launching an application with a general
class path (e.g /usr/share/java/*) since log4j will look for a
configuration file in all loaded jars. If any contains a directive for
the root logger, it will affect any logger with no level that are
directly under the root logger. This can result in an unexpected
behaviour (e.g no events triggered etc.).
Link: https://issues.apache.org/jira/browse/BSF-24
Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Michael Jeanson [Tue, 24 May 2016 18:28:46 +0000 (14:28 -0400)]
Typo: Stoping -> Stopping
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Michael Jeanson [Tue, 24 May 2016 18:28:45 +0000 (14:28 -0400)]
Typo: occured -> occurred
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Thu, 19 May 2016 22:48:16 +0000 (18:48 -0400)]
Fix: only perform lttng_consumer_sync_trace_file() in local mode
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Thu, 19 May 2016 22:47:54 +0000 (18:47 -0400)]
Make lttng_consumer_sync_trace_file static
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Thu, 19 May 2016 22:24:20 +0000 (18:24 -0400)]
Fix: don't negate posix_fadvise return value to check error
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Thu, 19 May 2016 22:16:48 +0000 (18:16 -0400)]
Fix Solaris 10 build: use lttng_strnlen() wrapper
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Thu, 19 May 2016 18:20:08 +0000 (14:20 -0400)]
Rename lttng_error_type to lttng_error_level
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Mathieu Desnoyers [Thu, 19 May 2016 15:57:45 +0000 (11:57 -0400)]
Cleanup error.h __lttng_print() used for message printing
The loglevels have never really been a mask, and it is useless to try to
use them as masks, because the compiler statically knows the value of
the loglevel requested, and can therefore optimise away all the logic.
This takes care of Coverity warning about mixed bitwise and boolean
logic, which was technically correct, but more complex than needed.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Mathieu Desnoyers [Thu, 19 May 2016 15:57:44 +0000 (11:57 -0400)]
Update coding style document for macro style
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Mathieu Desnoyers [Thu, 19 May 2016 15:57:43 +0000 (11:57 -0400)]
Fix: coding style document has erroneous semicolon at end of macro
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Mathieu Desnoyers [Thu, 19 May 2016 15:57:42 +0000 (11:57 -0400)]
Fix: add missing semicolons after MSG, DBG, ERR print macros
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Thu, 19 May 2016 05:35:44 +0000 (01:35 -0400)]
Tests: inverted condition in test_kernel_data
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Thu, 19 May 2016 05:26:11 +0000 (01:26 -0400)]
OOT build fix: asciidoc.conf is now a source file
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Philippe Proulx [Thu, 19 May 2016 02:59:12 +0000 (22:59 -0400)]
lttng-create(1): use attributes for default ports
Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Philippe Proulx [Thu, 19 May 2016 02:16:50 +0000 (22:16 -0400)]
lttng-create(1): add xrefs to creation mode definitions
Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Philippe Proulx [Thu, 19 May 2016 02:01:53 +0000 (22:01 -0400)]
lttng-create(1): use the correct DATAPORT/CTRLPORT variables
Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Philippe Proulx [Thu, 19 May 2016 02:01:08 +0000 (22:01 -0400)]
lttng-create(1): use def list for net protocols
Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Philippe Proulx [Wed, 18 May 2016 00:57:20 +0000 (20:57 -0400)]
lttng-create(1): add relay mode
Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Philippe Proulx [Tue, 17 May 2016 23:30:39 +0000 (19:30 -0400)]
doc/man: put AsciiDoc attributes in their own file
This facilitates the generation of man pages using another
asciidoc.conf file, but keeping the same attributes, without
having to split the generated configuration file.
Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Mathieu Desnoyers [Wed, 18 May 2016 18:04:19 +0000 (14:04 -0400)]
test: UST tracing destroy flush behavior with tracefile rotation
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 18 May 2016 18:04:18 +0000 (14:04 -0400)]
test: kernel tracing destroy flush behavior with tracefile rotation
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 18 May 2016 18:04:17 +0000 (14:04 -0400)]
Add environment variable to allow abort on error
The new environment variable LTTNG_ABORT_ON_ERROR allows each
lttng-tools program to call abort() on PERROR() and ERR() after the
error message has been printed to stderr.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Mathieu Desnoyers [Wed, 18 May 2016 18:04:13 +0000 (14:04 -0400)]
Fix: ust-consumer: flush empty packets on snapshot channel
Snapshot operation on a non-stopped stream should use a "final" flush to
ensure empty packets are flushed, so we gather timestamps at the moment
where the snapshot is taken. This is important for streams that have a
low amount of activity, which might be on an empty packet when the
snapshot is triggered.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Mathieu Desnoyers [Wed, 18 May 2016 18:04:16 +0000 (14:04 -0400)]
Fix: WARN() should print as WARN level, not ERR
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Mathieu Desnoyers [Wed, 18 May 2016 18:04:15 +0000 (14:04 -0400)]
Fix: error.h: add missing parenthesis around macro parameter
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Mathieu Desnoyers [Wed, 18 May 2016 18:04:14 +0000 (14:04 -0400)]
Fix: bogus mask on error.h PRINT types
PRINT_ERR maps to 0x1, PRINT_WARN maps to 0x2, which is fine so far to
use as masks, but PRINT_BUG maps to 0x3, which is the same as both
PRINT_ERR and PRINT_WARN, and does not make sense to use in masks with
__lttng_print:
(type & (PRINT_WARN | PRINT_ERR | PRINT_BUG))
Fix this by ensuring PRINT_BUG has its own mask, and express all
constants as shifts to eliminate the risk of re-introducing a similar
bug in the future.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Mathieu Desnoyers [Wed, 18 May 2016 18:04:12 +0000 (14:04 -0400)]
Fix: kernel tracing: flush after stop
We should flush the last packet after stop, not before. Otherwise, we
may end up with events written immediately after the flush, which
defeats the purpose of flushing.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Mathieu Desnoyers [Wed, 18 May 2016 18:04:11 +0000 (14:04 -0400)]
Fix: UST should not generate packet at destroy after stop
In the following scenario:
- create, enable events (ust),
- start
- ...
- stop (await for data_pending to complete)
- destroy
- rm the trace directory
We would expect that the "rm" operation would not conflict with the
consumer daemon trying to output data into the trace files, since the
"stop" operation ensured that there was no data_pending.
However, the "destroy" operation currently generates an extra packet
after the data_pending check (the "on_stream_hangup"). This causes the
consumer daemon to try to perform trace file rotation concurrently with
the trace directory removal in the scenario above, which triggers
errors. The main reason why this empty packet is generated by "destroy"
is to deal with trace start/stop scenario which would otherwise generate
a completely empty stream.
Therefore, introduce the concept of a "quiescent stream". It is
initialized at false on stream creation (first packet is empty). When
tracing is started, it is set to false (for cases of start/stop/start).
When tracing is stopped, if the stream is not quiescent, perform a
"final" flush (which will generate an empty packet if the current packet
was empty), and set quiescent to true. On "destroy" stream and on
application hangup: if the stream is not quiescent, perform a "final"
flush, and set the quiescent state to true.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
This page took 0.052826 seconds and 5 git commands to generate.