lttng-tools.git
11 years agoUnit tests: don't rebuild units under test
Simon Marchi [Mon, 8 Apr 2013 15:20:04 +0000 (11:20 -0400)] 
Unit tests: don't rebuild units under test

Only the tests themselves are built in the unit test folder. They reuse
the object files that are already built during the main compilation
pass. This would fix the conflicts between object names.

Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca>
Signed-off-by: David Goulet <dgoulet@efficios.com>
11 years agoFix: consumerd metadata channel/cache/timer races
Mathieu Desnoyers [Wed, 1 May 2013 20:52:59 +0000 (16:52 -0400)] 
Fix: consumerd metadata channel/cache/timer races

There were various races with the way metadata was handled for UST. Fix
this by:

- Ensuring that metadata cache is destroyed only when the metadata
  channel is destroyed (it is already protected by refcounting).
- Ensuring that close_metadata() command (issued by sessiond) just
  closes the stream wakeup_fd, and let the metadata management thread
  (which has ownership of the metadata stream) perform the teardown.
- Ensure that switch timer, for metadata, is always stopped before any
  of the metadata stream or channel teardown is done.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
11 years agoFix: consumerd channel destroy race
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>
11 years agoCleanup: document RCU read-side lock better
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>
11 years agoconsumer relayd interaction: fix segfaults
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>
11 years agoFix: change order of fd get to fix error path
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>
11 years agoFix: fd leak when creating UST metadata channel
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>
11 years agoFix: fd leak on error
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>
11 years agoFix consumerd fd leak
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>
11 years agoFix RCU-related hangs: incorrect lttng_ht_destroy use
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>
11 years agorculfhash: check for callers from RCU read-side C.S.
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>
11 years agoFix: don't call hash table destroy under rcu read-side c.s.
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>
11 years agoDocumentation: import updated comments from urcu
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>
11 years agoFix: segfault in buffer_reg_channel_destroy()
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>
11 years agoFix: add missing goto error in UST consumer
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>
11 years agoFix: no need to use run_as_open in the relayd
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>
11 years agoFix: typo in enable-channel man and help
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>
11 years agoFix: add some missing hidden attribute
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>
11 years agoFix: per-uid buffers should only be flushed once on stop
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>
11 years agoCleanup: Use own mutex within timer setup/teardown
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>
11 years agoFix: channel management thread should hold a refcount
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>
11 years agoFix: move metadata cache setup before ownership passing
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>
11 years agoFix: consumer metadata switch timer error handling
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>
11 years agoFix: set ptr to NULL to suppress old gcc warnings
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>
11 years agoFix: linking order of libraries
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>
11 years agoFix: multiple type mismatch in debug statement
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>
11 years agoFix: remove mention of trace directory layout in quickstart doc
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>
11 years agoFix: remove unused path variables from session obj
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>
11 years agoFix: update lttng.1 man and enable-channel help with read timer size
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>
11 years agoFix: use channel per domain default values
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>
11 years agoFix: typos in the code base
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>
11 years agoFix: deny multiple event types with enable-event
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>
11 years agoFix: deny the same port for data and control URL
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>
11 years agoFix: reset consumer destination when changing URIs
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>
11 years agoFix: don't allow different control and data destination
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>
11 years agoFix: typos in error strings
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>
11 years agoImprove channel listing output format
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>
11 years agoFix: enable-channel accepts mismatched option
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>
11 years agoFix: validate buffer type for UST channel creation
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>
11 years agoUpdate version to v2.2.0-rc1 v2.2.0-rc1
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>
11 years agoFix: Add missing header for make dist
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>
11 years agoFix: add missing declaration for disable-lttng-ust
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>
11 years agoFix: don't keep vpid, procname, nor patchlevel environment for per-uid buffers
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>
11 years agoRelayd add_stream command handle tracefile rotation
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>
11 years agoMove stream file rotation functions to utils
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>
11 years agoIntroduce the relayd socket object
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>
11 years agoAdjust the relayd protocol on version check
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>
11 years agoOn-disk multiple tracefiles circular buffer
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>
11 years agotests: implement context filtering tests
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>
11 years agoDocumentation: filter $ctx manpage and --help
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>
11 years agoImplement per-context filtering
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>
11 years agoTests: Add periodical flush fast regression test
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>
11 years agoUST periodical metadata flush
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>
11 years agoTests: Fix nprocesses applications shutdown
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>
11 years agoFix: Add test scripts and lists to the distribution package
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>
11 years agoFix: Run tests requiring the python bindings only when they are enabled
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>
11 years agoAdd optional Python >= 3.0 dependency to README
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>
11 years agoTests: Add "libc-wrapper" ust regression test
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>
11 years agoTests: Add "fork" ust regression test
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>
11 years agoTests: Add "exit-fast" ust regression test
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>
11 years agoTests: Add "daemon" ust regression test
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>
11 years agoTests: Add "linking" ust regression test
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>
11 years agoTests: Add Python test_utils module
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>
11 years agoFix: UST context activation
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>
11 years agoFix: lttng create default name check
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>
11 years agoFix: add missing error output
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>
11 years agoFix: minor errors in lttng.1 man page
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>
11 years agoFix: kernel function event was listed as probe
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>
11 years agoAdd unsupported error code to lttng cmd line
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>
11 years agoFix: typo in the create command help and man page
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>
11 years agoFix: session name max length was not handled correctly
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>
11 years agoFix: lttng UI failed to report error 19
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>
11 years agoFix: validate expanded path NULL ptr in relayd
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>
11 years agoAdd missing files for make dist
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>
11 years agoAdd optional Perl dependency requirement to README
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>
11 years agoTests: remove unused run script
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>
11 years agoAdd missing buffers-uid folder in test Makefile
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>
11 years agoTests: Do not exit when a failure occurs in test_buffers_uid
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>
11 years agoTests: Cleanup tests runner that are no longer required
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>
11 years agoTests: Use Perl prove as the testsuite runner
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>
11 years agoTests: Fix first line of output to follow TAP guidelines
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>
11 years agoTests: Fix missing TAP output in overlap test
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>
11 years agoTests: Fix number of tests in thread stall test
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>
11 years agoFix: change expected number of event for test uid
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>
11 years agoFix: handle error if metadata fails to be created
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>
11 years agoAllow enable-channel to work with metadata channel
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>
11 years agoAdd with-sessiond-bin configure option
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>
11 years agoFix: Use after free on spawn_sessiond error path in check_sessiond
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>
11 years agoFix: Memory leak when zmalloc fail on kernel channel allocation
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>
11 years agoFix: Memory leaks when calling get_cmdline_by_pid
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>
11 years agoFix: Memory leaks on unknown hashtable type error handling
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>
11 years agoFix: Memory leaks on error paths when exporting consumerd libdir in env
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>
11 years agoFix: Memory leaks on error paths in config_read_session_name
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>
11 years agoFix: Memory leak on error paths of relay_add_stream
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>
11 years agoFix: wrong header path when compiling without UST support
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>
11 years agoSupport per UID buffers
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>
11 years agoMove ust channel registry inside session registry
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>
11 years agoFix: function definition and declaration mismatch
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>
11 years agoFix: remove uri switch test from cbab merge commit
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>
11 years agoMerge remote-tracking branch 'cbab-github/tests-cleanup' into cbab
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

This page took 0.04815 seconds and 4 git commands to generate.