Mathieu Desnoyers [Wed, 1 May 2013 20:50:55 +0000 (16:50 -0400)]
Fix: consumerd channel destroy race
The LTTNG_CONSUMER_DESTROY_CHANNEL command is used to handle errors. It
should not call destroy_channel(), because at that point the channel
management thread has ownership of the channel. Send a notification to
the channel management thread asking it to destroy the channel instead.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 1 May 2013 20:46:41 +0000 (16:46 -0400)]
Cleanup: document RCU read-side lock better
Eventually we will have to move rcu read-side lock within the callees,
but let's at least make the current code consistent.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 1 May 2013 20:43:37 +0000 (16:43 -0400)]
consumer relayd interaction: fix segfaults
State where control socket is unset but data socket is set for a relayd
socket pair can be reached if relayd suddently disconnects at the wrong
time. Ensure we always verify that the file descriptors and operations
are initialized before using them.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
David Goulet [Tue, 30 Apr 2013 19:32:31 +0000 (15:32 -0400)]
Fix: change order of fd get to fix error path
Last commit had a wrong error path that could lead to an unbalanced fd
put/get.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Tue, 30 Apr 2013 19:23:56 +0000 (15:23 -0400)]
Fix: fd leak when creating UST metadata channel
Signed-off-by: David Goulet <dgoulet@efficios.com>
Mathieu Desnoyers [Tue, 30 Apr 2013 14:26:11 +0000 (10:26 -0400)]
Fix: fd leak on error
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 30 Apr 2013 14:25:21 +0000 (10:25 -0400)]
Fix consumerd fd leak
Refcount is only incremented and owned by thread management for streams,
not metadata.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 30 Apr 2013 03:03:44 +0000 (23:03 -0400)]
Fix RCU-related hangs: incorrect lttng_ht_destroy use
lttng_ht_destroy() should *NOT* be called with rcu_read_lock() held. It
can cause hangs.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 30 Apr 2013 01:38:32 +0000 (21:38 -0400)]
rculfhash: check for callers from RCU read-side C.S.
This is an error.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 30 Apr 2013 01:25:39 +0000 (21:25 -0400)]
Fix: don't call hash table destroy under rcu read-side c.s.
Fix
src/bin/lttng-sessiond/ust-registry.c:ust_registry_channel_del_free().
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 30 Apr 2013 00:58:49 +0000 (20:58 -0400)]
Documentation: import updated comments from urcu
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 29 Apr 2013 21:13:56 +0000 (17:13 -0400)]
Fix: segfault in buffer_reg_channel_destroy()
Can be called with NULL pointer, which trigger segfault on ERR() which
try to dereference it.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
David Goulet [Mon, 29 Apr 2013 21:58:51 +0000 (17:58 -0400)]
Fix: add missing goto error in UST consumer
On error, a channel set to NULL can be used causing a segfault when
receiving the metadata.
Reported-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 29 Apr 2013 17:08:36 +0000 (13:08 -0400)]
Fix: no need to use run_as_open in the relayd
The utils create stream file function is changed to handle uid and gid
set to -1 meaning that it now does not use the run_as_open() call which
is costly in performance and will instead use open().
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 29 Apr 2013 16:58:19 +0000 (12:58 -0400)]
Fix: typo in enable-channel man and help
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 29 Apr 2013 16:54:48 +0000 (12:54 -0400)]
Fix: add some missing hidden attribute
Signed-off-by: David Goulet <dgoulet@efficios.com>
Mathieu Desnoyers [Mon, 29 Apr 2013 16:50:06 +0000 (12:50 -0400)]
Fix: per-uid buffers should only be flushed once on stop
They were flushed once per application previously, causing workload with many
applications to trigger too many flush on stop, which in turn caused buffer
padding bloat.
* The pseudo-code for stop behavior on per-uid buffers was:
flush session's buffers
for each application:
- stop tracing
- wait quiescent
- flush buffers
- push metadata
Now doing, for per-uid buffers:
for each application:
- stop tracing
- wait quiescent
- push metadata
flush session's buffers
* And for per-pid buffers:
Previously:
for each application:
- stop tracing
- wait quiescent
- flush buffers
- push metadata
Now:
for each application:
- stop tracing
- wait quiescent
- push metadata
for each application:
- flush buffers
Fixes #497
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Mathieu Desnoyers [Fri, 26 Apr 2013 15:02:54 +0000 (11:02 -0400)]
Cleanup: Use own mutex within timer setup/teardown
More robust than relying on single-caller-thread assumptions.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Mathieu Desnoyers [Fri, 26 Apr 2013 14:27:51 +0000 (10:27 -0400)]
Fix: channel management thread should hold a refcount
In order to handle teardown caused by relayd being unresponsive, we need
to ensure that we correctly handle that the streams can be cleaned up
before the channel wakeup pipe gets closed. We achieve this by making
the channel management thread hold a refcount on the channel object, so
it only gets destroyed when all streams, _and_ the channel management
thread, have released their reference.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Mathieu Desnoyers [Fri, 26 Apr 2013 14:24:14 +0000 (10:24 -0400)]
Fix: move metadata cache setup before ownership passing
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Mathieu Desnoyers [Thu, 25 Apr 2013 18:45:17 +0000 (14:45 -0400)]
Fix: consumer metadata switch timer error handling
The thread handling the metadata switch cannot call
consumer_timer_switch_stop(), because it would become stucked waiting
for itself to execute the teardown signal handler.
Moreover, only one thread is allowed to call start/stop timer (by
design). Therefore, it's a race to have the thread handling the timer
handler calling "stop".
Fix this by adding a "switch_timer_error" flag, which just inhibits the
timer if an error is encountered, but does not modify its state
otherwise.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 22 Apr 2013 19:04:37 +0000 (15:04 -0400)]
Fix: set ptr to NULL to suppress old gcc warnings
This has been seen with gcc 4.4.5 on a 32 bit machine.
consumer.c: In function ‘consumer_add_relayd_socket’:
consumer.c:3002: warning: ‘relayd’ may be used uninitialized in this
function
However, the relayd pointer can not be used uninitialized so this patch
suppresses the warning.
Reported-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 22 Apr 2013 18:54:25 +0000 (14:54 -0400)]
Fix: linking order of libraries
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 22 Apr 2013 17:32:47 +0000 (13:32 -0400)]
Fix: multiple type mismatch in debug statement
This removes all the type mismatch warnings for x86 architecture.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Fri, 19 Apr 2013 16:15:51 +0000 (12:15 -0400)]
Fix: remove mention of trace directory layout in quickstart doc
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Fri, 12 Apr 2013 15:13:42 +0000 (11:13 -0400)]
Fix: remove unused path variables from session obj
Furthermore, this patch also removes useless '/' in the stream path
which was creating duplicates in the trace file path.
Fixes #496
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Fri, 12 Apr 2013 14:27:59 +0000 (10:27 -0400)]
Fix: update lttng.1 man and enable-channel help with read timer size
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Fri, 12 Apr 2013 14:21:51 +0000 (10:21 -0400)]
Fix: use channel per domain default values
This is related to bug497 but does not fix it. Using the command line and the
lttng_channel_set_default_attr() API call, the default read and switch timer
were not correct for UST and Kernel domain since we now use specific default
values for each of them.
Reported-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 11 Apr 2013 20:40:46 +0000 (16:40 -0400)]
Fix: typos in the code base
Fixes #488
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 11 Apr 2013 20:25:50 +0000 (16:25 -0400)]
Fix: deny multiple event types with enable-event
Fixes #444
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 11 Apr 2013 20:01:20 +0000 (16:01 -0400)]
Fix: deny the same port for data and control URL
This also adds the LTTNG_ERR_NOMEM code and fix a double lttng strerror
print in the lttng create command code.
Fixes #451
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 11 Apr 2013 19:24:01 +0000 (15:24 -0400)]
Fix: reset consumer destination when changing URIs
Using -C and -D with lttng create, the session if first created with the
default file path and then changed to the relayd URIs.
The destination object was not reset which was causing a corruption to
the state of the consumer object.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 11 Apr 2013 19:00:45 +0000 (15:00 -0400)]
Fix: don't allow different control and data destination
The lttng create command does not allow anymore different destination
when using -C and -D.
Fixes #455
Signed-off-by: David Goulet <dgoulet@efficios.com>
Simarpreet Singh [Tue, 9 Apr 2013 19:41:35 +0000 (15:41 -0400)]
Fix: typos in error strings
Fixes #453
Signed-off-by: Simarpreet Singh <simarpreet007@gmail.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 11 Apr 2013 18:30:46 +0000 (14:30 -0400)]
Improve channel listing output format
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 11 Apr 2013 18:19:55 +0000 (14:19 -0400)]
Fix: enable-channel accepts mismatched option
Also fixes a small typo in an error message of enable-channel. This
commit adds the buffer type for the UST domain with lttng list.
Fixes #489
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 11 Apr 2013 18:04:17 +0000 (14:04 -0400)]
Fix: validate buffer type for UST channel creation
Fixes #499
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 28 Mar 2013 20:32:03 +0000 (16:32 -0400)]
Update version to v2.2.0-rc1
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 28 Mar 2013 20:21:00 +0000 (16:21 -0400)]
Fix: Add missing header for make dist
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 28 Mar 2013 20:06:02 +0000 (16:06 -0400)]
Fix: add missing declaration for disable-lttng-ust
Signed-off-by: David Goulet <dgoulet@efficios.com>
Mathieu Desnoyers [Thu, 28 Mar 2013 19:54:12 +0000 (15:54 -0400)]
Fix: don't keep vpid, procname, nor patchlevel environment for per-uid buffers
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Julien Desfossez [Thu, 28 Mar 2013 17:25:08 +0000 (13:25 -0400)]
Relayd add_stream command handle tracefile rotation
Extend the relayd_add_stream structure to pass the tracefile_size and
tracefile_count parameters required to handle the tracefile rotation.
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Julien Desfossez [Thu, 28 Mar 2013 15:48:02 +0000 (11:48 -0400)]
Move stream file rotation functions to utils
These functions are now in libcommon which can be used by the relayd and
consumer.
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Julien Desfossez [Thu, 28 Mar 2013 04:09:48 +0000 (00:09 -0400)]
Introduce the relayd socket object
Used to store the version that the relayd socket supports so we can
adapt the communication to the lowest version between the session daemon
and relayd.
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Julien Desfossez [Wed, 27 Mar 2013 17:59:08 +0000 (13:59 -0400)]
Adjust the relayd protocol on version check
If the relayd and sessiond are compatible (same major number), we store
in the session the protocol version to use for the rest of the
communication (the lowest minor number).
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Julien Desfossez [Wed, 27 Mar 2013 17:27:55 +0000 (13:27 -0400)]
On-disk multiple tracefiles circular buffer
This patch introduces the tracefile_size and tracefile_count parameters
to the enable-channel command and the API.
This allows to split a stream into multiple tracefiles and limit the
amount of trace data to keep on disk. The tracefiles are readable
independently or with the others as long as the metadata file is
present.
For now only local traces are handled, relayd modifications coming soon.
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Mathieu Desnoyers [Wed, 27 Mar 2013 19:28:01 +0000 (15:28 -0400)]
tests: implement context filtering tests
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 27 Mar 2013 16:10:44 +0000 (12:10 -0400)]
Documentation: filter $ctx manpage and --help
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 26 Mar 2013 02:33:57 +0000 (22:33 -0400)]
Implement per-context filtering
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
David Goulet [Wed, 27 Mar 2013 16:25:35 +0000 (12:25 -0400)]
Tests: Add periodical flush fast regression test
Signed-off-by: David Goulet <dgoulet@efficios.com>
Julien Desfossez [Tue, 26 Mar 2013 02:27:05 +0000 (22:27 -0400)]
UST periodical metadata flush
Add a socket between the sessiond and the ust-consumer to allow
periodical flush of the metadata channel.
If enabled (by specifying the --switch-timer option on the metadata
channel), a new timer thread in the consumer asks the session daemon for
new metadata for a specific session.
All the metadata collected is written into a metadata cache in the
consumer, this mechanism is useful for synchronisation (to avoid race
conditions between two metadata updates) and will also be useful when we
implement the snapshots.
Acked-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Wed, 27 Mar 2013 14:21:54 +0000 (10:21 -0400)]
Tests: Fix nprocesses applications shutdown
The nprocesses test is using the SIGPIPE signal to shutdown the spawned
child applications. This is done in order to silence the shell message
such as this one:
"nprocesses/test_nprocesses: line 79: 26458 Terminated"
This mechanism is broken on systems where the SIGPIPE default handler is
overriden (thus no application shutdown occurs) in the executing
environment. This could lead to stale applications polluting the system
and causing heratic behavior in subsequent tests.
This commit add a loop and check that all the spawned applications have
been successfully killed.
Signed-off-by: Christian Babeux <christian.babeux@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Jérémie Galarneau [Wed, 27 Mar 2013 05:38:35 +0000 (01:38 -0400)]
Fix: Add test scripts and lists to the distribution package
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Jérémie Galarneau [Wed, 27 Mar 2013 03:23:03 +0000 (23:23 -0400)]
Fix: Run tests requiring the python bindings only when they are enabled
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Jérémie Galarneau [Tue, 26 Mar 2013 00:28:36 +0000 (20:28 -0400)]
Add optional Python >= 3.0 dependency to README
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Jérémie Galarneau [Tue, 26 Mar 2013 00:28:35 +0000 (20:28 -0400)]
Tests: Add "libc-wrapper" ust regression test
Based on the "test-libustinstr-malloc" test formerly part of lttng-ust.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Jérémie Galarneau [Tue, 26 Mar 2013 00:28:34 +0000 (20:28 -0400)]
Tests: Add "fork" ust regression test
Based on the "fork" test formerly part of lttng-ust.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Jérémie Galarneau [Tue, 26 Mar 2013 00:28:33 +0000 (20:28 -0400)]
Tests: Add "exit-fast" ust regression test
Based on the "exit-fast" test formerly part of lttng-ust.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Jérémie Galarneau [Tue, 26 Mar 2013 00:28:32 +0000 (20:28 -0400)]
Tests: Add "daemon" ust regression test
Based on the "daemon" test formerly part of lttng-ust.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Jérémie Galarneau [Tue, 26 Mar 2013 00:28:31 +0000 (20:28 -0400)]
Tests: Add "linking" ust regression test
Based on the "demo" test formerly part of lttng-ust. Tests userspace
tracing with directly, statically and dynamically linked providers. Also
meant as an exemple of building and tracing an application with all
types of provider linking.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Jérémie Galarneau [Tue, 26 Mar 2013 00:28:30 +0000 (20:28 -0400)]
Tests: Add Python test_utils module
Basic Python test framework based on the lttng-tools Python bindings
that facilitates the creation of a tracing session saving its trace in
a temporary location, the activation of events in the UST domain and
clean teardown of the test session.
Also provides basic TAP output facilities.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Mathieu Desnoyers [Tue, 26 Mar 2013 02:35:46 +0000 (22:35 -0400)]
Fix: UST context activation
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 25 Mar 2013 20:30:12 +0000 (16:30 -0400)]
Fix: lttng create default name check
Fixes #449
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 25 Mar 2013 20:15:37 +0000 (16:15 -0400)]
Fix: add missing error output
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 25 Mar 2013 19:58:38 +0000 (15:58 -0400)]
Fix: minor errors in lttng.1 man page
Fixes #448
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 25 Mar 2013 19:30:08 +0000 (15:30 -0400)]
Fix: kernel function event was listed as probe
Fixes #442
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 25 Mar 2013 19:07:30 +0000 (15:07 -0400)]
Add unsupported error code to lttng cmd line
Fixes #438
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 25 Mar 2013 18:44:41 +0000 (14:44 -0400)]
Fix: typo in the create command help and man page
Fixes #436
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 25 Mar 2013 18:41:22 +0000 (14:41 -0400)]
Fix: session name max length was not handled correctly
Fixes #435
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 25 Mar 2013 17:31:51 +0000 (13:31 -0400)]
Fix: lttng UI failed to report error 19
Fixes #437
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 25 Mar 2013 15:03:12 +0000 (11:03 -0400)]
Fix: validate expanded path NULL ptr in relayd
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 25 Mar 2013 14:36:37 +0000 (10:36 -0400)]
Add missing files for make dist
Fixes #480
Signed-off-by: David Goulet <dgoulet@efficios.com>
Christian Babeux [Fri, 22 Mar 2013 19:49:19 +0000 (15:49 -0400)]
Add optional Perl dependency requirement to README
Signed-off-by: Christian Babeux <christian.babeux@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 25 Mar 2013 14:16:01 +0000 (10:16 -0400)]
Tests: remove unused run script
Signed-off-by: David Goulet <dgoulet@efficios.com>
Jérémie Galarneau [Mon, 25 Mar 2013 14:13:26 +0000 (10:13 -0400)]
Add missing buffers-uid folder in test Makefile
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Christian Babeux [Thu, 21 Mar 2013 19:56:47 +0000 (15:56 -0400)]
Tests: Do not exit when a failure occurs in test_buffers_uid
Signed-off-by: Christian Babeux <christian.babeux@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Christian Babeux [Thu, 21 Mar 2013 19:56:46 +0000 (15:56 -0400)]
Tests: Cleanup tests runner that are no longer required
Test runners have been superseeded by testlists and the prove utility.
Signed-off-by: Christian Babeux <christian.babeux@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Christian Babeux [Thu, 21 Mar 2013 19:56:45 +0000 (15:56 -0400)]
Tests: Use Perl prove as the testsuite runner
Currently the regression and unit testsuites are runned via a custom
runner script. By using the Perl prove utility, we can run the
testsuites and also gain additionnal features such as: parallel jobs,
separate testlists, etc.
This commit modify the make check target to run Perl prove as the
testsuite runner.
Testlist:
tests/unit_tests : unit tests.
tests/fast_regression : a fast regression testsuite.
tests/long_regression : a long regression testsuite (includes slow tests such
as test_low_throughput and others).
tests/root_regression : a testsuite for tests that need root access
(mostly tests using lttng-modules and bandwith limits).
Running a testsuite:
$ cd lttng-tools/tests
$ ./run.sh <testsuite>
One can also run tests manually using prove:
$ prove --exec '' path/to/test
OR
$ prove --exec '' - < testlist
Signed-off-by: Christian Babeux <christian.babeux@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Christian Babeux [Thu, 21 Mar 2013 19:56:44 +0000 (15:56 -0400)]
Tests: Fix first line of output to follow TAP guidelines
From the Test::Harness::TAP documentation [1]:
The plan tells how many tests will be run, or how many tests have
run. It's a check that the test file hasn't stopped prematurely.
It must appear once, whether at the beginning or end of the output.
The TAP plan *must* be the first line of output of any tests. Currently,
most of the tests output their description and then the TAP plan. This
can cause issues while parsing the test output for "strict" TAP parser
such as the one used in the prove tool.
This commit ensure that the first line outputted by any tests is the TAP
plan.
Signed-off-by: Christian Babeux <christian.babeux@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Christian Babeux [Thu, 21 Mar 2013 19:56:43 +0000 (15:56 -0400)]
Tests: Fix missing TAP output in overlap test
The start and stop tracing shell functions are currently redirected to
/dev/null. This has the unfortunate side-effect of silencing the TAP
output thus producing an incomplete test output.
This commit remove the /dev/null redirection of those commands.
Signed-off-by: Christian Babeux <christian.babeux@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Christian Babeux [Thu, 21 Mar 2013 19:56:42 +0000 (15:56 -0400)]
Tests: Fix number of tests in thread stall test
Signed-off-by: Christian Babeux <christian.babeux@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 21 Mar 2013 19:40:54 +0000 (15:40 -0400)]
Fix: change expected number of event for test uid
With UST commit
d970f72ef97cd5f1e5e0152ce48a4c6b28eccfb2, enabling the
same events in two different channels make write them two times instead
of once.
This commit changes the number of expected events in one test for per
UID buffers.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 21 Mar 2013 19:21:56 +0000 (15:21 -0400)]
Fix: handle error if metadata fails to be created
Reported-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 21 Mar 2013 18:27:16 +0000 (14:27 -0400)]
Allow enable-channel to work with metadata channel
This makes the enable-channel command to support setting the metadata
channel attributes. Now, with the lttng UI and API, the metadata
attributes can be set.
$ lttng enable-channel metadata -u ...
Signed-off-by: David Goulet <dgoulet@efficios.com>
Simon Marchi [Thu, 28 Feb 2013 23:42:17 +0000 (18:42 -0500)]
Add with-sessiond-bin configure option
I also cleaned up the little check_sessiond function. The check using
access(2) was only done for the command line option, but I think it is a
good idea to do it wherever the path comes from.
Closes #441
Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Christian Babeux [Thu, 28 Feb 2013 20:48:30 +0000 (15:48 -0500)]
Fix: Use after free on spawn_sessiond error path in check_sessiond
Signed-off-by: Christian Babeux <christian.babeux@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Christian Babeux [Thu, 28 Feb 2013 20:48:29 +0000 (15:48 -0500)]
Fix: Memory leak when zmalloc fail on kernel channel allocation
Signed-off-by: Christian Babeux <christian.babeux@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Christian Babeux [Thu, 28 Feb 2013 20:48:28 +0000 (15:48 -0500)]
Fix: Memory leaks when calling get_cmdline_by_pid
Callers of get_cmdline_by_pid must free(3) the returned string.
Signed-off-by: Christian Babeux <christian.babeux@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Christian Babeux [Thu, 28 Feb 2013 20:48:27 +0000 (15:48 -0500)]
Fix: Memory leaks on unknown hashtable type error handling
Signed-off-by: Christian Babeux <christian.babeux@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Christian Babeux [Thu, 28 Feb 2013 20:48:26 +0000 (15:48 -0500)]
Fix: Memory leaks on error paths when exporting consumerd libdir in env
Signed-off-by: Christian Babeux <christian.babeux@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Christian Babeux [Thu, 28 Feb 2013 20:48:25 +0000 (15:48 -0500)]
Fix: Memory leaks on error paths in config_read_session_name
Signed-off-by: Christian Babeux <christian.babeux@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Christian Babeux [Thu, 28 Feb 2013 20:48:24 +0000 (15:48 -0500)]
Fix: Memory leak on error paths of relay_add_stream
On error paths the memory allocated for stream is never freed.
Also, fix undefined behavior on asprintf alloc failure. According to
asprintf(3), the content of the pointer passed to it is undefined if an
alloc failure occurs, so we could end up freeing a pointer in an
undefined state. Force its value to NULL.
Signed-off-by: Christian Babeux <christian.babeux@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 21 Mar 2013 17:12:23 +0000 (13:12 -0400)]
Fix: wrong header path when compiling without UST support
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 7 Mar 2013 20:39:10 +0000 (15:39 -0500)]
Support per UID buffers
This is a rather large commit. It adds the support for per UID buffers
for the user space tracer.
The --buffers-uid option is added to the lttng enable-channel command
which will set the session to use per UID buffers. So, all other channel
in that session MUST be set with the same buffer type or else an error
will be returned. For instance, here is an invalid use case:
$ lttng create
$ lttng enable-channel -u --buffers-uid chan1
$ lttng enable-channel -u chan2
The default is per PID (--buffers-pid). With no buffer type option, the
per PID is used for the UST tracer and global buffers for the kernel
being the only supported type for it (--buffers-global).
The tracing directory path are also changed to support this. For per UID
buffers, the path is now:
~/lttng-traces/ust/uid/1000/64-bit/*
For per PID buffers:
~/lttng-traces/<session_name>-<date>-<time>/ust/pid/ \
<app-name>-<pid>-<date>-<time>/
So basically, for UID, traces are stored per UID/ABI and for PID is
simply stored with the app name and pid. The kernel traces are untouched
and are still in kernel/.
Tests are also added for per UID buffers.
Acked-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 7 Mar 2013 17:05:35 +0000 (12:05 -0500)]
Move ust channel registry inside session registry
This is more logical with the way we do locking where a channel can not
exist without a session so accessing a channel implies the session lock.
Also, this patch makes the session registry a pointer that we allocate
and free on destroy.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 21 Mar 2013 14:20:47 +0000 (10:20 -0400)]
Fix: function definition and declaration mismatch
Fixes #476
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 11 Mar 2013 17:19:28 +0000 (13:19 -0400)]
Fix: remove uri switch test from cbab merge commit
Also add a file to .gitignore.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 11 Mar 2013 17:00:33 +0000 (13:00 -0400)]
Merge remote-tracking branch 'cbab-github/tests-cleanup' into cbab
Conflicts:
tests/regression/tools/streaming/test_high_throughput_limits
tests/unit/test_kernel_data.c
tests/unit/test_ust_data.c
Jérémie Galarneau [Sat, 16 Feb 2013 01:46:45 +0000 (20:46 -0500)]
Fix: mark generated python bindings files as nodist
make dist would fail if ./configure had not been invoked with
the --enable-python-bindings switch.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 11 Mar 2013 14:51:03 +0000 (10:51 -0400)]
Fix: change default channel values in unit test
Signed-off-by: David Goulet <dgoulet@efficios.com>
This page took 0.044103 seconds and 4 git commands to generate.