Mathieu Desnoyers [Tue, 27 May 2014 20:25:26 +0000 (16:25 -0400)]
Implement test_event_tracef
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Mathieu Desnoyers [Tue, 27 May 2014 20:25:25 +0000 (16:25 -0400)]
Implement tracef test application "gen-ust-tracef"
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Tue, 27 May 2014 14:55:42 +0000 (10:55 -0400)]
Fix: out of tree build
Reported-by: Daniel Olivier <daniel.olivier@ericsson.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 26 May 2014 18:52:58 +0000 (14:52 -0400)]
List session event loglevel for the JUL domain
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 26 May 2014 18:12:23 +0000 (14:12 -0400)]
Fix: possible use after free in consumer
Fixes the coverity issue
1019959.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 26 May 2014 18:06:10 +0000 (14:06 -0400)]
Fix: man page typo
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 22 May 2014 19:22:53 +0000 (15:22 -0400)]
Remove deprecated API from lttng.h
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 22 May 2014 19:20:03 +0000 (15:20 -0400)]
Split lttng.h into several files
This does NOT break backward compatibility since lttng.h includes every
possible ABI/API.
Fixes #78
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 22 May 2014 17:25:24 +0000 (13:25 -0400)]
Fix: improve and update lttng.h comments
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 26 May 2014 18:02:04 +0000 (14:02 -0400)]
Test: add JUL filtering test
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 26 May 2014 18:01:14 +0000 (14:01 -0400)]
Fix: JUL filtering for event *
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Fri, 23 May 2014 19:04:23 +0000 (15:04 -0400)]
Fix: don't send consumer error to sessiond in teardown
At that point, the control socket has been closed thus the session
daemon is aware that the consumer died. The consumer exit reason is not
even handled by the session daemon.
In the case of the session daemon tearing down, the consumer should
avoid trying to send data on a potentially closed socket.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Fri, 23 May 2014 18:36:33 +0000 (14:36 -0400)]
Don't print time and pid/tid in ERR() and WARN()
The lttng command line uses these two macros to print information to the
user. With the time and pid/tid, it is not really user friendly and
useful for the user.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Fri, 23 May 2014 18:25:06 +0000 (14:25 -0400)]
Fix: saturate verbosity level to 3
Fixes #748
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Fri, 23 May 2014 18:20:43 +0000 (14:20 -0400)]
Remove the --consumerd-only from the configure
Fixes #712
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Fri, 23 May 2014 14:32:09 +0000 (10:32 -0400)]
Fix: deny overwrite mode and num subbuf less than 2
Also fixed in UST and modules with commit:
(modules)
5140d2b3070f211e6d8a0ad7cb0a190e8b6f3e28
(ust)
3d8e9399b2fb9000b3b55e488a7d04184b5bb56e
Fixes #793
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Fri, 23 May 2014 14:08:00 +0000 (10:08 -0400)]
Fix: add missing lib rt link for clock_gettime
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 22 May 2014 21:32:48 +0000 (17:32 -0400)]
Revert "Remove --no-output option from the command line"
This reverts commit
bb2b749bfdced63e744f660aaab28bc12669b6dc.
This affected too many tests that use that option but should not. A
better tested commit will replace this one soon.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 22 May 2014 21:05:48 +0000 (17:05 -0400)]
Remove --no-output option from the command line
Fixes #792
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 22 May 2014 20:59:30 +0000 (16:59 -0400)]
Add timestamp to log
Also, the ERR() and WARN() now have the timestamp and the PID
information.
Fixes #519
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 22 May 2014 19:53:07 +0000 (15:53 -0400)]
Add max-size to snapshot list output
Fixes #635
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 22 May 2014 19:43:47 +0000 (15:43 -0400)]
Add live timer and tracefile count/size to list
The live timer interval is session wide where the trace file count/size
is per channel.
Fixes #642
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 22 May 2014 14:56:30 +0000 (10:56 -0400)]
Fix: remove bad option in enable channel --help
Fixes #776
Signed-off-by: David Goulet <dgoulet@efficios.com>
Christian Babeux [Wed, 21 May 2014 19:19:22 +0000 (15:19 -0400)]
Fix: Tests with racy event validation
Similar to
d7ee608c00feacea3cfd5a740df64e5215347cb9, make sure that the
event validation scheme is not racy. If we need to wait for applications
to complete simply start them in foreground or use the built-in 'wait'
command in bash to wait for applications started in background.
Signed-off-by: Christian Babeux <christian.babeux@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Mathieu Desnoyers [Wed, 21 May 2014 16:10:24 +0000 (12:10 -0400)]
Doc: document tracefile max size discarded event limitation
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Wed, 21 May 2014 17:52:52 +0000 (13:52 -0400)]
Fix: implicit conversion from enumeration
Fixes #759
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Wed, 21 May 2014 15:41:46 +0000 (11:41 -0400)]
Fix: clarify man page lttng.1
Fixes #689
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Wed, 21 May 2014 16:09:15 +0000 (12:09 -0400)]
Fix: disable-event/channel return error if no domain
The disable-event/channel command now check for a UST/kernel session
before trying to disable the object. If none exists, it returns an error
without creating a domain.
Fixes #638
Signed-off-by: David Goulet <dgoulet@efficios.com>
Jérémie Galarneau [Wed, 14 May 2014 20:52:22 +0000 (16:52 -0400)]
Fix: Tests should set the LTTNG_SESSION_CONFIG_XSD_PATH variable
Tests should set the LTTNG_SESSION_CONFIG_XSD_PATH environment
variable to use the in-tree session configuration schema.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Jan Glauber [Wed, 14 May 2014 14:26:32 +0000 (16:26 +0200)]
Configurable kernel module probes support
Create a kernel module probes list and use it to load the specified
probes. The probes are selectable by the --kmod-probes command line
option to lttng-sessiond or the LTTNG_KMOD_PROBES environment variable.
If neither is set all probes are loaded so the current behaviour is not
changed.
Signed-off-by: Jan Glauber <jan.glauber@gmail.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Jan Glauber [Wed, 14 May 2014 14:26:31 +0000 (16:26 +0200)]
Remove required parameter from module parameters
Remove the per module required parameter by adding another list
for optional core modules, so we have:
- required core modules
- optional core modules
- optional probe modules
Signed-off-by: Jan Glauber <jan.glauber@gmail.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Jan Glauber [Wed, 14 May 2014 14:26:30 +0000 (16:26 +0200)]
Seperate probe modules from control modules
Move all control modules to the control list and make a seperate
probes list.
Signed-off-by: Jan Glauber <jan.glauber@gmail.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Jan Glauber [Wed, 14 May 2014 14:26:29 +0000 (16:26 +0200)]
Use common functions for module loading and unloading
Module loading (and unloading) is identical for control and data modules
so use common funtions to avoid code duplication.
Signed-off-by: Jan Glauber <jan.glauber@gmail.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Jérémie Galarneau [Wed, 14 May 2014 17:46:06 +0000 (13:46 -0400)]
Docs: Add a section documenting lttng-sessiond's -l/--load option
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Jérémie Galarneau [Wed, 14 May 2014 15:32:10 +0000 (11:32 -0400)]
Fix: Copy-pasted PERROR messages may be misleading
Some PERRORs in lttng-sessiond's pthread_create's error handling
code indicate the wrong thread name which may be misleading
during debugging.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Wed, 14 May 2014 15:30:16 +0000 (11:30 -0400)]
Fix: incorrect printf format
Fixes #777
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Wed, 14 May 2014 15:27:00 +0000 (11:27 -0400)]
Fix: handle ENOENT when creating a kernel event
The kernel tracer returns ENOENT if an event is not found thus warn the
user of that.
Fixes #761
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Wed, 14 May 2014 15:01:43 +0000 (11:01 -0400)]
Fix: load all possible path for sessiond conf file
The session daemon now tries to load the system wide conf. file, user
local and finally the command line.
Fixes #709
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Wed, 14 May 2014 13:28:15 +0000 (09:28 -0400)]
Fix: add missing packed attribute to comm. struct.
Fixes #707
Signed-off-by: David Goulet <dgoulet@efficios.com>
Raphaël Beamonte [Wed, 11 Dec 2013 16:39:41 +0000 (11:39 -0500)]
Add git commit id to the version if it's not a tag
Signed-off-by: Raphaël Beamonte <raphael.beamonte@gmail.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Jérémie Galarneau [Tue, 13 May 2014 16:14:10 +0000 (12:14 -0400)]
Man: Add load and save sections to the lttng.1 man page
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Jérémie Galarneau [Thu, 8 May 2014 16:02:52 +0000 (12:02 -0400)]
Add a -l/--load option to the session-daemon
This option makes it possible to set a PATH from which session
configurations are loaded by the session daemon on startup.
Usage: lttng-sessiond -l PATH
The session configuration file found at PATH, or all those present in it
if it is a directory, will be loaded.
All sessions found under the user's session configuration directory and
under the system session configuration directory are now loaded by
default.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 12 May 2014 15:50:40 +0000 (11:50 -0400)]
Fix: uncomment rm trace path statement in test
Signed-off-by: David Goulet <dgoulet@efficios.com>
Jérémie Galarneau [Thu, 8 May 2014 21:06:22 +0000 (17:06 -0400)]
Fix: Ressource leak, missing fclose
Fixes coverity issue
1139536.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Jérémie Galarneau [Thu, 8 May 2014 21:05:55 +0000 (17:05 -0400)]
Fix: Possible out-of-bounds read
Fixes coverity issue
1191757.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Jérémie Galarneau [Thu, 8 May 2014 16:13:05 +0000 (12:13 -0400)]
Print an error message when a session fails to load
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Jérémie Galarneau [Thu, 8 May 2014 16:12:28 +0000 (12:12 -0400)]
Fix: Don't report an error if no sessions are found with default options
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Wed, 7 May 2014 18:12:13 +0000 (14:12 -0400)]
Fix: move JUL filter creation to a function
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Wed, 7 May 2014 17:53:36 +0000 (13:53 -0400)]
Fix: JUL filtering done on the UST level
This is to support enabling all events with different loglevels in two
different sessions.
For this, if any loglevel have been defined, the 'int_loglevel' filter
is added to the UST event. The liblttng-ust-jul library has been
modified to stop filtering loglevel in the agent.
This commit adds two tests, one for a back to back session that are
destroyed and a second one for multi loglevel session.
Signed-off-by: David Goulet <dgoulet@efficios.com>
Jérémie Galarneau [Wed, 7 May 2014 18:27:45 +0000 (14:27 -0400)]
Fix: Don't output to stdout from lttng-ctl
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Jérémie Galarneau [Tue, 6 May 2014 19:27:14 +0000 (15:27 -0400)]
Fix: session.xsd is already present in dist_xml_DATA
There is no need to include session.xsd as part of xml_DATA since
dist_xml_DATA will already ensure it is part of the dist target and
installed.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 5 May 2014 19:39:43 +0000 (15:39 -0400)]
Fix: add missing source file for make dist
Signed-off-by: David Goulet <dgoulet@efficios.com>
Jérémie Galarneau [Mon, 5 May 2014 19:21:18 +0000 (15:21 -0400)]
Fix: Don't include the binary in the live test's EXTRA_DIST
Adding the binary in EXTRA_DIST causes the "dist" target to fail
with a "No rule to make target libtap.la" error.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Jérémie Galarneau [Mon, 5 May 2014 14:41:46 +0000 (10:41 -0400)]
Fix: Out of tree build fails in libconfig
libconfig_la_CPPFLAGS should also include the top-level AM_CPPFLAGS.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Tue, 15 Apr 2014 19:05:42 +0000 (15:05 -0400)]
Fix: add JUL filter to UST event on logger_name
This is to avoid having the JUL event copied in each sessions. See
ticket description for more details.
To achieve this, JUL filtering has been added to fix that bug.
Fixes #773
Signed-off-by: David Goulet <dgoulet@efficios.com>
Julien Desfossez [Mon, 17 Mar 2014 20:15:26 +0000 (16:15 -0400)]
Add UST perf test in make check on x86
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Julien Desfossez [Mon, 17 Mar 2014 01:59:16 +0000 (21:59 -0400)]
Test for UST perf counters
Works both in physical and virtual machines.
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Julien Desfossez [Mon, 17 Mar 2014 01:59:15 +0000 (21:59 -0400)]
Fix: rename of perf counter context
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Mathieu Desnoyers [Mon, 17 Feb 2014 01:00:31 +0000 (20:00 -0500)]
Implement LTTng-UST perf counters support
Introduce perf:cpu:* and perf:thread:* performance monitoring counter
contexts. perf:cpu: is used for kernel tracing, and perf:thread: is used
for UST. perf:* is kept for backward compatibility, but not shown in
lttng add-context --help anymore.
Example usages of performance counters have been adapted to this new
interface.
For the lttng.h API We introduce LTTNG_EVENT_CONTEXT_PERF_CPU_COUNTER
and LTTNG_EVENT_CONTEXT_PERF_THREAD_COUNTER as the API counterparts of
the new command line options. LTTNG_EVENT_CONTEXT_PERF_COUNTER is kept
for backward compatibility.
For ABIs with the tracers, introduce the new
LTTNG_UST_CONTEXT_PERF_THREAD_COUNTER to support this new UST feature.
Rename LTTNG_KERNEL_CONTEXT_PERF_COUNTER to
LTTNG_KERNEL_CONTEXT_PERF_CPU_COUNTER, following the same change in
lttng-modules (keeping the same enum entry value).
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Jesper Derehag [Thu, 24 Apr 2014 08:22:50 +0000 (10:22 +0200)]
Backported to glibc 2.8
This patch enables lttng-tools to run on top of glibc 2.8.
Overall it fixes 2 things:
1. No support for epoll_create1(..) and EPOLL_CLOEXEC.
2. No support for htobe/betoh
For 1, we revert back to epoll_create() and then sets CLOEXEC through
fcntl instead.
For 2, we define htobe/betoh as part of the compat/endian.h and make
sure that any users of those functions actually include compat/endian.h
instead of implicit include of system endian.h
Acked-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Tested-by: Jesper Derehag <jderehag@hotmail.com>
Signed-off-by: Jesper Derehag <jderehag@hotmail.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Christian Babeux [Wed, 16 Apr 2014 16:26:25 +0000 (12:26 -0400)]
Clarify limitations of the --syscall flag with enable-event command
Signed-off-by: Christian Babeux <christian.babeux@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Christian Babeux [Fri, 18 Apr 2014 17:10:09 +0000 (13:10 -0400)]
Fix: Racy event validation in tests
This pattern is fundamentally racy:
$TESTAPP_BIN $NR_ITER $NR_USEC_WAIT >/dev/null 2>&1 &
[...]
while [ -n "$(pidof $TESTAPP_BIN)" ]; do
sleep 1
done
pass "Wait for application end"
[...]
tracing_teardown
validate_trace $EXACT_EVENT_COUNT
It is possible that the check for "pidof $TESTAPP_BIN" occurs _before_
the execve() of the applications (starting the applications in background
with & is basically a clone() + execve()). The consequence is that the check
succeed, never waiting for any applications to finish and then the tracing
sessions are prematurely teared down. Thus the resulting trace contains only
some events. We then validate for a fixed number of events and thus the test
fails caused by this racy scheduling situation.
The fix is to start the applications in foreground instead of background.
Signed-off-by: Christian Babeux <christian.babeux@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Jérémie Galarneau [Fri, 11 Apr 2014 03:58:03 +0000 (23:58 -0400)]
Use the in-tree session.xsd in test_load
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Jérémie Galarneau [Mon, 14 Apr 2014 16:10:44 +0000 (12:10 -0400)]
Override the session.xsd path with an ENV. variable
The LTTNG_SESSION_CONFIG_XSD_PATH environment variable can be used to
specify a path which contains the session configuration schema. This
will allow save-load tests to be ran without installing the XSD on the
system.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Jonathan Rajotte [Mon, 14 Apr 2014 14:42:38 +0000 (10:42 -0400)]
Fix: replace 1 for true in libxml checking
Initial bug on ./configure:
checking for libxml - version >= 2.7.6... yes (version 2.9.1)
./configure: line 5137: 1: command not found
Signed-off-by: Jonathan Rajotte <jonathan.r.julien@gmail.com>
Simon Marchi [Thu, 10 Apr 2014 15:30:19 +0000 (11:30 -0400)]
Fix: rework utils_parse_size_suffix
Ok, so there are a lot of problems with this function (sorry :|). Taking
the regex road is probably to complicated for nothing, so here is a
version without regexes.
I added many test cases as suggested by Sandeep Chaudhary and Daniel
Thibault. I tested on both Intel 32 and 64 bits.
Fixes #633
Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Christian Babeux [Thu, 10 Apr 2014 21:16:39 +0000 (17:16 -0400)]
Fix: XML declaration must be at beginning of XSD file
Move down license information to fix the parser error :
XML declaration allowed only at the start of the document
Signed-off-by: Christian Babeux <christian.babeux@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Jérémie Galarneau [Mon, 7 Apr 2014 15:47:37 +0000 (11:47 -0400)]
Add MIT license header to session.xsd
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Wade Farnsworth [Fri, 28 Mar 2014 20:09:59 +0000 (13:09 -0700)]
Insert V4L2 instrumentation module on session start
Requires V4L2 instrumentation patch for lttng-modules.
Signed-off-by: Wade Farnsworth <wade_farnsworth@mentor.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Wed, 9 Apr 2014 18:20:54 +0000 (14:20 -0400)]
Update ChangeLog with 2.4.1 release
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 3 Apr 2014 17:14:00 +0000 (13:14 -0400)]
Fix: don't delete stream from connection recv list
We don't need to delete them from the list during a connection destroy
because it's only a reference to the stream that might be valid or not
during the connection destroy. There is no need at all to access the
stream's pointer at that point.
Commit
cd2ef1ef1d54ced9e4d0d03b865bb7fc6a905f80 did not fixed the full
issue so this should fix the use after free race for good.
Signed-off-by: David Goulet <dgoulet@efficios.com>
Michael Jeanson [Fri, 4 Apr 2014 14:23:36 +0000 (10:23 -0400)]
Fix: misc spelling errors
Signed-off-by: Michael Jeanson <mjeanson@ubuntu.com>
David Goulet [Wed, 2 Apr 2014 19:07:21 +0000 (15:07 -0400)]
Fix: don't quiet the consumer if opt_quiet is not set
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Wed, 2 Apr 2014 14:31:34 +0000 (10:31 -0400)]
Fix: use after free of a relayd stream
A race could occur with a stream destruction and a control connection
being destroyed emptying its recv_list. A freed stream could still be in
the list thus having a use after free during the connection destroy.
That was triggering undefined behavior from infinite looping to
segmentation faults.
We've observed this issue on high load stress test. A relayd received
all the stream but NOT the streams sent command which empty the list.
This can happen if a start tracing never occured or failed on the
application side thus the close stream command is sent to the relayd
freeing the stream before it is removed from that list.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Tue, 1 Apr 2014 15:36:13 +0000 (11:36 -0400)]
Fix: don't print stream name in error message
The stream received, in per UID, is actually a temporary stream object
that only contains the UST object data which is the relevant part for
UST to use.
Thus on error the name was random data thus print the valid handle
descriptor instead of invalid data.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Fri, 28 Mar 2014 13:58:03 +0000 (09:58 -0400)]
Fix: take session list lock when listing tp
This is important since the list tracepoints command access the
application socket to ask the application for its TPs. The session list
lock protects the ordering of message for those sockets.
This was triggering out of order message between the session daemon and
an application thus triggering undefined behavior.
Fixes #774
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Wed, 19 Mar 2014 18:34:27 +0000 (14:34 -0400)]
Fix: add consumer wake up pipe to avoid race
UST application will notify the wait_fd pipe for every subbuffer that it
writes and ready to be consumed. However, on *high* load systems, this
1:1 property can fail if the pipe gets filled up. For performance
reason, UST will ignore this error and continue since it can't wait for
the pipe to clear up.
This triggers a race condition where we have *one* wake up on the UST
pipe for potentially multiple subbuffers. A data pending command will
wait forever on streams that still has data but the data thread could'nt
consumed them because of this 1:n possible race. Using the stop command
without waiting would mean a memory/fd leak of the stream.
Thus, we add a consumer wake up pipe here that notifies the data thread
if there is still data to be read after a successful read subbuffer
call. With this, we end up handling the residual buffers if any since
the data thread is always notified when there is still data to be read.
Acked-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Fri, 28 Mar 2014 17:19:47 +0000 (13:19 -0400)]
Fix: don't spawn relayd if URL is provided
In the lttng command line tool, relayd should only be spawned for the
default use case which is no URL provided.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Wed, 26 Mar 2014 15:31:36 +0000 (11:31 -0400)]
Fix: update test to use correct lttng load option
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Wed, 26 Mar 2014 15:31:23 +0000 (11:31 -0400)]
Fix: allow loading session file with -i option
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Wed, 26 Mar 2014 15:26:15 +0000 (11:26 -0400)]
Fix: bad errno handling in load session from path
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Wed, 26 Mar 2014 15:19:15 +0000 (11:19 -0400)]
Update load help message
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Wed, 26 Mar 2014 15:01:25 +0000 (11:01 -0400)]
Print message on a successful load command
Fixes #754
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Wed, 26 Mar 2014 14:50:41 +0000 (10:50 -0400)]
Remove -s option from lttng load command
This is to help usability and also provide the same usage as lttng save
command that does not require this option.
Fixes #755
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Wed, 26 Mar 2014 14:22:29 +0000 (10:22 -0400)]
Update ChangeLog and configure to 2.4.0 stable
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Tue, 25 Mar 2014 17:19:57 +0000 (13:19 -0400)]
Rename kernel and ust trace variable for clarity
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Tue, 25 Mar 2014 16:14:01 +0000 (12:14 -0400)]
Rename variable in session.h for clarity
The "started" var. is changed to the flag "has_been_started" indicating
if at least ONE start command has been seen.
The "enabled" var. is changed to the flag "active" and the semantic is
the same.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Tue, 25 Mar 2014 15:34:47 +0000 (11:34 -0400)]
Fix: don't ask data pending if session was not started
Fixes #770
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 24 Mar 2014 20:07:51 +0000 (16:07 -0400)]
Fix: missing test file in EXTRA dist
Fixes #753
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Wed, 19 Mar 2014 20:19:04 +0000 (16:19 -0400)]
Tests: add tests for the save and load feature
This commit integrates the tests to the fast make check.
Fixes #757
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 24 Mar 2014 19:55:59 +0000 (15:55 -0400)]
Fix: set full path in .gitignore
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 24 Mar 2014 19:52:31 +0000 (15:52 -0400)]
Fix: use NULL url for load live session
For a live session, the control and data URI are mandatory thus pass
NULL to the create session so we can set them afterwards by a set
consumer URL call.
net:// can't be used for control and data so this fixes the uri to url
string by printing "tcp://" instead of net:// which is more accurate and
the good way to actually print the URL to the user.
Fixes #767
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 24 Mar 2014 18:23:00 +0000 (14:23 -0400)]
Fix: allow empty URL for live session creation
This is actually very important so -C/-D can be used with lttng create
--live command and also the load command can set the control and data
URL independently.
This also adds a small test to make sure -C/-D works in live mode.
Fixes #769
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 24 Mar 2014 18:22:34 +0000 (14:22 -0400)]
Fix: missing valid return code when adding an URI to consumer
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 20 Mar 2014 19:06:30 +0000 (15:06 -0400)]
Fix: clarify sessiond ust app queue cmd comment
Reported-by: Daniel Thibault <Daniel.Thibault@drdc-rddc.gc.ca>
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Wed, 19 Mar 2014 20:19:49 +0000 (16:19 -0400)]
Fix: use uri API to parse url for save command
Signed-off-by: David Goulet <dgoulet@efficios.com>
Jérémie Galarneau [Wed, 19 Mar 2014 15:29:18 +0000 (11:29 -0400)]
Fix: Succesful session load might still report an error
This ensures that the load command reports a successful load when
the session is found in the user's home session configuration
directory and not in the system-wide session configuration directory.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Jérémie Galarneau [Wed, 19 Mar 2014 15:28:52 +0000 (11:28 -0400)]
Fix: Pass session name to config_load_session when no path is provided
Fixes #756
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Jérémie Galarneau [Wed, 19 Mar 2014 15:25:26 +0000 (11:25 -0400)]
Fix: Remove overly restrictive asserts in create_session()
The current assertions only allow sessions containing all three
domain types to be created. The pointers are already checked at
ln 1242.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Michael Jeanson [Sat, 15 Mar 2014 17:55:11 +0000 (13:55 -0400)]
Fix: syntax error in lttng.1
Signed-off-by: Michael Jeanson <mjeanson@gmail.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
This page took 0.04629 seconds and 5 git commands to generate.