lttng-tools.git
10 years agoStatically linked lttng-ctl to live test
David Goulet [Wed, 6 Nov 2013 22:18:16 +0000 (17:18 -0500)] 
Statically linked lttng-ctl to live test

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoImplement live viewer SEEK_LAST
Julien Desfossez [Wed, 16 Oct 2013 18:21:02 +0000 (14:21 -0400)] 
Implement live viewer SEEK_LAST

When attaching to a live session, the viewer can now specify that it
wants to only receive the new packets instead of receiving the trace
from the beginning.

Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoLive unit test
Julien Desfossez [Wed, 6 Nov 2013 16:38:52 +0000 (11:38 -0500)] 
Live unit test

The actual test :
- connect to the relayd on localhost
- list the sessions (should find only one)
- attach to the first session
- receive all the streams
- get all the metadata
- get one index per stream
- get one data packet

Then the session is stopped, destroyed and the daemons killed.

Two tests are also added just to for the lttng commands with a --live
session.

Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoLive: send the number of streams in list_sessions
Julien Desfossez [Wed, 6 Nov 2013 16:38:51 +0000 (11:38 -0500)] 
Live: send the number of streams in list_sessions

This allows the viewer to quickly know if a session is really active or
just created and idle. Before this patch, we had to attach to a session
to discover the number of streams active in that session.

Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoFix: remove the rundir at the end of the cleanup
David Goulet [Wed, 6 Nov 2013 18:29:07 +0000 (13:29 -0500)] 
Fix: remove the rundir at the end of the cleanup

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoWrite TCP JUL port in the lttng's rundir
David Goulet [Wed, 6 Nov 2013 18:25:20 +0000 (13:25 -0500)] 
Write TCP JUL port in the lttng's rundir

The default name is jul.port and this file will be read by the JavaAgent
at init time so it can connect to a custom port without recompiling the
Java application or modifying the Java application with a sessiond port
option.

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoFix: application SIGBUS when starting in parallel with sessiond
David Goulet [Wed, 6 Nov 2013 15:49:43 +0000 (10:49 -0500)] 
Fix: application SIGBUS when starting in parallel with sessiond

There is a race between application startup and sessiond startup, where there
is an intermediate state where applications can SIGBUS if they see a zero-sized
shm, if the shm has been created, but not ftruncated yet.

On the sessiond side, we need to ensure that the shared memory is writeable by
applications as long as its size is 0, which allow applications to perform
ftruncate and extend its size.

On the UST side, another commit needs to ensure that UST can read the shared
memory file descriptor with a read() system call before they try accessing it
through a memory map (which triggers the SIGBUS if the access goes beyond the
file size)

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoFix: Uninitialized scalar variable
David Goulet [Mon, 4 Nov 2013 21:34:38 +0000 (16:34 -0500)] 
Fix: Uninitialized scalar variable

Fix coverity issue 1099611.

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoFix: missing LTTNG_OK return value for snapshot
David Goulet [Mon, 4 Nov 2013 21:24:25 +0000 (16:24 -0500)] 
Fix: missing LTTNG_OK return value for snapshot

After a successful kernel snapshot, the ret = LTTNG_OK was missing thus
returning 0 to the caller which was expecting LTTNG_OK.

Also, this patch fixes the live_timer_interval check at start that CAN
be -1 thus not trying to start it.

Acked-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoFix: ressource leak in error path
David Goulet [Mon, 4 Nov 2013 20:47:17 +0000 (15:47 -0500)] 
Fix: ressource leak in error path

Fix coverity issue 1107347.

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoFix: bad copy paste in enable-channel command
David Goulet [Mon, 4 Nov 2013 20:45:04 +0000 (15:45 -0500)] 
Fix: bad copy paste in enable-channel command

Fix coverity issue 1125546.

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoFix: fix misleading comment
David Goulet [Mon, 4 Nov 2013 19:26:04 +0000 (14:26 -0500)] 
Fix: fix misleading comment

Fixes #655

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoFix: don't enable if param overflows when rounded up
David Goulet [Mon, 4 Nov 2013 19:17:20 +0000 (14:17 -0500)] 
Fix: don't enable if param overflows when rounded up

Fixes #641

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoFix: add default name in snapshot add-output msg
David Goulet [Mon, 4 Nov 2013 18:43:32 +0000 (13:43 -0500)] 
Fix: add default name in snapshot add-output msg

Fixes #634

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoFix: arguments in the wrong order for fd-limit
David Goulet [Mon, 4 Nov 2013 18:19:06 +0000 (13:19 -0500)] 
Fix: arguments in the wrong order for fd-limit

This is related to a bug we've been seeing with a very HIGH load of
applications registering at the same time where the get/put counters get
out of sync. exhausting the fd pool quite rapidely even though there was
no fd leak.

Acked-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoFix: Some corrections to the lttng man page
Jérémie Galarneau [Wed, 23 Oct 2013 16:08:47 +0000 (12:08 -0400)] 
Fix: Some corrections to the lttng man page

Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoFix: use after free in jul_list_events
David Goulet [Thu, 17 Oct 2013 19:39:44 +0000 (15:39 -0400)] 
Fix: use after free in jul_list_events

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoFix: memory leak in error path in JUL list
David Goulet [Wed, 16 Oct 2013 19:42:52 +0000 (15:42 -0400)] 
Fix: memory leak in error path in JUL list

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoFix: JUL domain support with --disable-lttng-ust
David Goulet [Wed, 16 Oct 2013 15:41:36 +0000 (11:41 -0400)] 
Fix: JUL domain support with --disable-lttng-ust

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoAdd lttng list -j command to list possible events
David Goulet [Thu, 3 Oct 2013 19:20:07 +0000 (15:20 -0400)] 
Add lttng list -j command to list possible events

For the JUL domain, add the -j/--jul support for lttng list.

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoAdd jul-app ABI/API and handle registration
David Goulet [Tue, 1 Oct 2013 18:22:22 +0000 (14:22 -0400)] 
Add jul-app ABI/API and handle registration

Registration is done in the jul thread and the created jul-app are
attached to existing UST app.

At this stage, there is no need for the UST app to be linked to the JUL
app but in the future, by adding new features, this will be needed.

Enable/Disable one or all events are supported. Also, once a JUL
application registers, it's updated with the already enabled events.

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoAdd JUL registration thread
David Goulet [Mon, 30 Sep 2013 21:28:16 +0000 (17:28 -0400)] 
Add JUL registration thread

Listening on port 5345 by default and adds the --jul-tcp-port option to
the session daemon command line options.

At this commit, the thread is started and listening for incoming
registration but they are not handled.

This commit adds a new thread to the session daemon that is spawned by
default once the launched.

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoAdd jul.c/.h to sessiond code
David Goulet [Mon, 30 Sep 2013 19:06:27 +0000 (15:06 -0400)] 
Add jul.c/.h to sessiond code

This adds data structures to handle the JUL domain. The domain is added
to a ust session and created/destroyed in the trace-ust.c API.

Nothing is working yet, just putting the piece together.

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoAdd -j/--jul to lttng UI and ABI
David Goulet [Mon, 30 Sep 2013 16:23:16 +0000 (12:23 -0400)] 
Add -j/--jul to lttng UI and ABI

The JUL domain is set as unsupported in the session daemon so only the
client side is implemented with help updated.

Again, on the session daemon side, this is set as unsupported.

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoFix: recv creds comm should handle partial receive
David Goulet [Fri, 11 Oct 2013 20:02:13 +0000 (16:02 -0400)] 
Fix: recv creds comm should handle partial receive

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoFix: set app socket timeout just after accept()
David Goulet [Fri, 11 Oct 2013 18:59:45 +0000 (14:59 -0400)] 
Fix: set app socket timeout just after accept()

This is to make sure the socket has a timeout *before* doing any I/O
operations on it.

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoAdd --live to lttng.1 man page
David Goulet [Thu, 10 Oct 2013 18:41:46 +0000 (14:41 -0400)] 
Add --live to lttng.1 man page

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoFix: put ctf trace ht ref. inside stream
David Goulet [Thu, 10 Oct 2013 16:24:43 +0000 (12:24 -0400)] 
Fix: put ctf trace ht ref. inside stream

Acked-by: Julien Desfossez <julien.desfossez@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoFix: remove relative include for health check
David Goulet [Wed, 9 Oct 2013 20:50:29 +0000 (16:50 -0400)] 
Fix: remove relative include for health check

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoDeprecate lttng-health-check.3 man page
David Goulet [Wed, 9 Oct 2013 20:44:36 +0000 (16:44 -0400)] 
Deprecate lttng-health-check.3 man page

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoUpdate health check regression tests
Mathieu Desnoyers [Wed, 9 Oct 2013 18:32:31 +0000 (14:32 -0400)] 
Update health check regression tests

Update to new health_check program output.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agotests: health check: OK if consumerd is not running
Mathieu Desnoyers [Wed, 9 Oct 2013 18:06:18 +0000 (14:06 -0400)] 
tests: health check: OK if consumerd is not running

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoFix: consumerd/relayd health paths
Mathieu Desnoyers [Wed, 9 Oct 2013 18:00:13 +0000 (14:00 -0400)] 
Fix: consumerd/relayd health paths

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoUnlink rundir files individually
Mathieu Desnoyers [Wed, 9 Oct 2013 17:50:34 +0000 (13:50 -0400)] 
Unlink rundir files individually

Cannot use rm -rf anymore since relayd now need to have the lttng rundir
available beyond the lifetime of sessiond.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoFix: join live threads after joining others
Mathieu Desnoyers [Wed, 9 Oct 2013 15:57:26 +0000 (11:57 -0400)] 
Fix: join live threads after joining others

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoAdd health thread to relayd
Mathieu Desnoyers [Wed, 9 Oct 2013 14:21:14 +0000 (10:21 -0400)] 
Add health thread to relayd

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agohealth consumerd: add missing extern
Mathieu Desnoyers [Wed, 9 Oct 2013 13:46:40 +0000 (09:46 -0400)] 
health consumerd: add missing extern

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agolttng ctl health: add string description of relayd live threads
Mathieu Desnoyers [Wed, 9 Oct 2013 13:38:37 +0000 (09:38 -0400)] 
lttng ctl health: add string description of relayd live threads

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agorelayd: add health check support for live threads
Mathieu Desnoyers [Wed, 9 Oct 2013 13:36:56 +0000 (09:36 -0400)] 
relayd: add health check support for live threads

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoHealth check test: add relayd check support
Mathieu Desnoyers [Sat, 5 Oct 2013 00:53:55 +0000 (20:53 -0400)] 
Health check test: add relayd check support

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoHealth check: implement health check query in sessiond and consumerd
Mathieu Desnoyers [Sat, 5 Oct 2013 00:15:19 +0000 (20:15 -0400)] 
Health check: implement health check query in sessiond and consumerd

At this stage, tests/regression/tools/health/health_check queries
sessiond and consumerd with the new API, however, the scripts using this
program have not yet been changed, and are therefore expected to fail.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agohealth check API
Mathieu Desnoyers [Mon, 30 Sep 2013 21:34:19 +0000 (17:34 -0400)] 
health check API

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoImplement consumer health check thread
Mathieu Desnoyers [Tue, 24 Sep 2013 18:35:42 +0000 (14:35 -0400)] 
Implement consumer health check thread

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoMove health comm to health-internal.h
Mathieu Desnoyers [Tue, 24 Sep 2013 16:20:41 +0000 (12:20 -0400)] 
Move health comm to health-internal.h

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoconsumerd: add health instrumentation into threads
Mathieu Desnoyers [Mon, 16 Sep 2013 22:54:42 +0000 (17:54 -0500)] 
consumerd: add health instrumentation into threads

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoconsumerd: register threads to health monitoring
Mathieu Desnoyers [Mon, 16 Sep 2013 22:44:22 +0000 (17:44 -0500)] 
consumerd: register threads to health monitoring

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agorelayd: add health instrumentation to threads
Mathieu Desnoyers [Mon, 16 Sep 2013 14:47:16 +0000 (09:47 -0500)] 
relayd: add health instrumentation to threads

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agorelayd: register threads to health monitoring
Mathieu Desnoyers [Mon, 16 Sep 2013 14:30:34 +0000 (09:30 -0500)] 
relayd: register threads to health monitoring

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoMove health into its own common/ static library
Mathieu Desnoyers [Sun, 15 Sep 2013 22:03:24 +0000 (17:03 -0500)] 
Move health into its own common/ static library

- Introduce lttng/health-internal.h (not installed)

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoTurn health.h/health.c into a library
Mathieu Desnoyers [Sun, 15 Sep 2013 21:52:54 +0000 (16:52 -0500)] 
Turn health.h/health.c into a library

All app-specific state is now in an object: struct health_app.

This moves the per-application enumeration into health-sessiond.h (for
sessiond).

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoCleanup: health.h
Mathieu Desnoyers [Sun, 15 Sep 2013 20:07:58 +0000 (15:07 -0500)] 
Cleanup: health.h

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoFix: sessiond poll thread normal error path should return 0
Mathieu Desnoyers [Tue, 24 Sep 2013 18:35:59 +0000 (14:35 -0400)] 
Fix: sessiond poll thread normal error path should return 0

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoFix: relayd: incorrectly placed exit labels
Mathieu Desnoyers [Mon, 16 Sep 2013 13:33:15 +0000 (08:33 -0500)] 
Fix: relayd: incorrectly placed exit labels

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoFix: add missing pthread_join in sessiond
Mathieu Desnoyers [Mon, 16 Sep 2013 13:31:28 +0000 (08:31 -0500)] 
Fix: add missing pthread_join in sessiond

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoFix: set_health_socket_path() as tracing group
Mathieu Desnoyers [Sun, 15 Sep 2013 22:35:34 +0000 (17:35 -0500)] 
Fix: set_health_socket_path() as tracing group

liblttng-ctl running as tracing group should talk to root sessiond, not
per-user sessiond (missing return 0 there). Take care of cleaning up
this function while we are there (the if (uid && is_tracing) {} if
(!uid) {} are misleading).

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoFix: add missing pthread_join in sessiond
David Goulet [Mon, 30 Sep 2013 20:24:48 +0000 (16:24 -0400)] 
Fix: add missing pthread_join in sessiond

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoFix: session's hostname wrongly assigned
David Goulet [Mon, 30 Sep 2013 17:19:01 +0000 (13:19 -0400)] 
Fix: session's hostname wrongly assigned

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoFix: remove bad UST header in consumer-timer.c
David Goulet [Mon, 30 Sep 2013 15:19:13 +0000 (11:19 -0400)] 
Fix: remove bad UST header in consumer-timer.c

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoFix: use global thread quit pipe in live
David Goulet [Fri, 27 Sep 2013 22:05:17 +0000 (18:05 -0400)] 
Fix: use global thread quit pipe in live

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoFix: use session id when deleting viewer streams
David Goulet [Fri, 27 Sep 2013 21:41:42 +0000 (17:41 -0400)] 
Fix: use session id when deleting viewer streams

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoFix: remove debug error message
David Goulet [Fri, 27 Sep 2013 20:35:22 +0000 (16:35 -0400)] 
Fix: remove debug error message

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoDocumentation of live usage and protocol
Julien Desfossez [Fri, 27 Sep 2013 20:28:40 +0000 (16:28 -0400)] 
Documentation of live usage and protocol

Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
10 years agoRelicense lttng-index and lttng-viewer to BSD
Julien Desfossez [Thu, 12 Sep 2013 20:05:50 +0000 (16:05 -0400)] 
Relicense lttng-index and lttng-viewer to BSD

Signed-off-by: David Goulet <dgoulet@efficios.com>
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
10 years agoFix: add missing break in switch for relayd create session
David Goulet [Fri, 27 Sep 2013 19:46:59 +0000 (15:46 -0400)] 
Fix: add missing break in switch for relayd create session

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoFix: don't create index on snapshot
David Goulet [Fri, 27 Sep 2013 19:46:13 +0000 (15:46 -0400)] 
Fix: don't create index on snapshot

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoFix: add index destruction in destroy stream call
David Goulet [Fri, 27 Sep 2013 19:18:13 +0000 (15:18 -0400)] 
Fix: add index destruction in destroy stream call

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoFix: make indexes HT global for real
David Goulet [Fri, 27 Sep 2013 18:54:03 +0000 (14:54 -0400)] 
Fix: make indexes HT global for real

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoFix: rename close_stream and use it in delete session
David Goulet [Fri, 27 Sep 2013 18:48:57 +0000 (14:48 -0400)] 
Fix: rename close_stream and use it in delete session

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoFix: assign values to relayd connection type enum
David Goulet [Fri, 27 Sep 2013 18:40:19 +0000 (14:40 -0400)] 
Fix: assign values to relayd connection type enum

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoMake viewer streams HT global
David Goulet [Fri, 27 Sep 2013 18:35:27 +0000 (14:35 -0400)] 
Make viewer streams HT global

This hash table is meant to be global by design thus making it globally
accessible in the relayd so we don't pass it around in every function
call.

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoFix: compile without UST support
David Goulet [Fri, 27 Sep 2013 18:20:51 +0000 (14:20 -0400)] 
Fix: compile without UST support

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoTest for new metadata at each packet
Julien Desfossez [Thu, 12 Sep 2013 15:04:22 +0000 (11:04 -0400)] 
Test for new metadata at each packet

After sending each data packet in live, we need to check if new metadata
is available before sending the index informing the viewer it can read
the trace.

Since the data and the metadata are handled by two different threads,
this patch introduces a rendez-vous point: if new metadata is available,
the data thread flushes the metadata stream and waits on a conditionnal
variable. When the metadata thread finishes to send its data, it wakes
up the data thread which can send its index.

That way, the viewer is informed new metadata is available before
attempting to read a packet that might require an update of the
metadata.

Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoImplement the relayd live features
Julien Desfossez [Sun, 28 Jul 2013 22:57:41 +0000 (18:57 -0400)] 
Implement the relayd live features

The live-reading feature allows a user to read the trace while it is
being recorded. In order to work, this feature requires the trace to be
streamed to lttng-relayd. Then, a viewer can connect to the relayd, list
the sessions, attach to one, and start reading the data. The
live-reading protocol, enforces the viewer to read all the metadata
before trying to read the trace, and checks all the streams for new
activity at a user-defined rate (configured by the new --live parameter
during the session creation).

Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoFix: return -errno value on error in run_as mkdir
David Goulet [Mon, 16 Sep 2013 18:01:06 +0000 (14:01 -0400)] 
Fix: return -errno value on error in run_as mkdir

Signed-off-by: David Goulet <dgoulet@ev0ke.net>
10 years agoSend indexes in streaming mode
Julien Desfossez [Mon, 19 Aug 2013 15:35:43 +0000 (11:35 -0400)] 
Send indexes in streaming mode

To write an index on disk, we need to know all the fields sent by the
RELAY_SEND_INDEX command as well as the offset of the data in the
tracefile.

Since the control and data connection are not synchronized, this process
happens in two separate steps synchronized by an HT indexed by the
index_handle and the net_seq_num.

When we receive data and when we receive an index, we lookup in the HT
if an entry already exists. If it does, it means that we only need to
fill the fields we just received and write the index on disk, otherwise,
we allocate a new index, set the fields we know and store it in the HT.

Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoHT support for keys with two uint64_t
Julien Desfossez [Mon, 19 Aug 2013 15:35:42 +0000 (11:35 -0400)] 
HT support for keys with two uint64_t

Add the support in the hashtable abstraction layer to handle a key
composed of a two uint64_t.

The hash function is a simple XOR between the two hashes and the compare
function resolves the eventual collisions by comparing the two values.

Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoLive timer set up
Julien Desfossez [Sun, 28 Jul 2013 22:03:47 +0000 (18:03 -0400)] 
Live timer set up

Add a new option to create to enable the live_timer being --live at
session creation. A new API call is added also to create as session in
live mode like the snapshot feature.

This timer is responsible to check all streams of a live session and
make sure the viewer receives periodic updates even for low-throughput
channels.

Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoBump version to 2.4.0-pre1
Julien Desfossez [Mon, 5 Aug 2013 19:48:15 +0000 (15:48 -0400)] 
Bump version to 2.4.0-pre1

We need to bump the version early in the development cycle since we
extend the relayd protocol.

Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoGenerate local kernel and UST indexes
Julien Desfossez [Thu, 8 Aug 2013 20:54:48 +0000 (16:54 -0400)] 
Generate local kernel and UST indexes

When the consumer creates a new trace file, it now creates as well an
index file that the viewers can use to navigate in the trace.  For now
these indexes are only local and not sent to the relayd.

This patch requires additionnal ioctl and ustctl calls implemented in
lttng-modules and lttng-ust in 2.4.

For now, no indexes are sent over the network and no indexes are
generated on snaphots.

Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoAdd support for non unique add string in hashtable
Julien Desfossez [Wed, 28 Aug 2013 18:03:16 +0000 (14:03 -0400)] 
Add support for non unique add string in hashtable

Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoFix typo in lttng snapshot add-output example of lttng(1)
Christian Babeux [Wed, 25 Sep 2013 14:06:05 +0000 (10:06 -0400)] 
Fix typo in lttng snapshot add-output example of lttng(1)

Signed-off-by: Christian Babeux <christian.babeux@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoTests: Add UST snapshots streaming test with custom URI
Christian Babeux [Mon, 9 Sep 2013 22:10:40 +0000 (18:10 -0400)] 
Tests: Add UST snapshots streaming test with custom URI

Signed-off-by: Christian Babeux <christian.babeux@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoTests: Add UST snapshots list output and max-size tests
Christian Babeux [Mon, 9 Sep 2013 22:09:38 +0000 (18:09 -0400)] 
Tests: Add UST snapshots list output and max-size tests

Add two new tests to the UST snapshots tests:

test_ust_list_output:
Add/remove named outputs and validate with the list output command.

test_ust_local_snapshot_max_size:
Take a UST snapshot with max-size limits and validate that they are respected.

Signed-off-by: Christian Babeux <christian.babeux@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoEnable support for installcheck.
Stefan Seefeld [Thu, 12 Sep 2013 00:37:41 +0000 (20:37 -0400)] 
Enable support for installcheck.

Enable execution of tests via `make installcheck`, i.e. against a fully
installed
LTTng.

The patch simply adds the same rule to the installcheck target that is
used for check.  Testing with an OpenEmbedded build shows the unit_tests
suite to work fine, while the fast_regression suite contains many
failures not present when run as `make check`.

Stefan Seefeld (1):
  Enable support for installcheck.

Signed-off-by: Stefan Seefeld <stefan_seefeld@mentor.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoAdd original snapshot proposal to documentation
David Goulet [Wed, 11 Sep 2013 15:08:51 +0000 (11:08 -0400)] 
Add original snapshot proposal to documentation

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoUpdate version to v2.3.0
David Goulet [Wed, 4 Sep 2013 01:25:31 +0000 (21:25 -0400)] 
Update version to v2.3.0

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoFix: remove periodical flush test from make check
David Goulet [Tue, 3 Sep 2013 21:50:34 +0000 (17:50 -0400)] 
Fix: remove periodical flush test from make check

This test is racy for the following reasons. It expects that the
subbuffer flush timer always produce a coherent trace after a period of
time but this cannot be guaranteed without the upcoming live feature.

A test based on time expectation is a bit flacky so disable it for now
until we have live tracing.

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoUpdate version to v2.3.0-rc3
David Goulet [Fri, 30 Aug 2013 19:09:39 +0000 (15:09 -0400)] 
Update version to v2.3.0-rc3

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoFix: hashtable: take split_count_order into account
Mathieu Desnoyers [Fri, 30 Aug 2013 18:31:48 +0000 (14:31 -0400)] 
Fix: hashtable: take split_count_order into account

This makes check_resize() handle split-counters more precisely.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoFix: remove wrong doing asserts in sessiond
David Goulet [Fri, 30 Aug 2013 14:04:16 +0000 (10:04 -0400)] 
Fix: remove wrong doing asserts in sessiond

Asserting on the fd and socket was wrong since the two fds can be set to
-1 concurrently when calling this function.

Fixes #624

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoTests: fix periodical flush tests to stop app
David Goulet [Thu, 29 Aug 2013 21:48:47 +0000 (17:48 -0400)] 
Tests: fix periodical flush tests to stop app

The test now SIGSTOP the application before validating the trace and
once done, SIGKILL them. This way we make sure we test the periodical
flush feature by letting the application live, stopping it from creating
more events and validating the flush.

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoFix: correctly close metadata on sessiond thread shutdown
David Goulet [Thu, 29 Aug 2013 21:40:58 +0000 (17:40 -0400)] 
Fix: correctly close metadata on sessiond thread shutdown

Introduce a _close_metadata() function that does not take any locks so
it can be used by multiple call sites with different locking scheme.

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoFix: delete the trace directory used for the test
David Goulet [Thu, 29 Aug 2013 14:49:24 +0000 (10:49 -0400)] 
Fix: delete the trace directory used for the test

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoFix: remove bad check after epoll wait in consumer
David Goulet [Thu, 29 Aug 2013 14:38:12 +0000 (10:38 -0400)] 
Fix: remove bad check after epoll wait in consumer

The returned nb_fd value is the number of FD ready for the requested I/O
so having and revents set to 0 is possible since not all fd are ready
thus making this check irrelevant and actually ressource consuming.

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoFix: missing data pending signess conversion
David Goulet [Thu, 29 Aug 2013 13:48:43 +0000 (09:48 -0400)] 
Fix: missing data pending signess conversion

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoFix: consumer data pending for empty streams
Mathieu Desnoyers [Thu, 29 Aug 2013 02:47:20 +0000 (22:47 -0400)] 
Fix: consumer data pending for empty streams

We should at least output one packet before a stream can be considered
as readable. So far, for PID buffers, if an application exits at the
wrong timing before a stop waiting for data pending, empty streams could
be visible by a babeltrace executed after data pending incorrectly
returned false.

Fix it by considering a stream for which the consumerd has written 0
bytes to the output as having data pending.

This applies to 2.3-rc and stable-2.2.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoFix: hash table growth (for small tables) should be limited (v2)
Mathieu Desnoyers [Tue, 27 Aug 2013 22:11:04 +0000 (18:11 -0400)] 
Fix: hash table growth (for small tables) should be limited (v2)

Buckets with many entries encountered in a hash table could cause it to
grow to a large size, beyond the scope for which this mechanism is
expected to play a role when node accounting is available. Indeed, when
the hash table grows to larger size, split-counter node accounting is
expected to deal with resize/shrink rather than relying on an heuristic
based on the largest bucket size.

This is fixing an issue where we see hash tables sometimes reaching 65k
entries index (65536*8 = 524288 bytes) for a workload limited to adding
1000 entries and then removing all of them, done in a loop (random
keys).

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoFix: run_as gid/uid test should return result to parent
Mathieu Desnoyers [Tue, 27 Aug 2013 20:24:55 +0000 (16:24 -0400)] 
Fix: run_as gid/uid test should return result to parent

Failure to do so could cause the parent to hang on read() waiting for
the return value from the child.

Targets: 2.3-rc and stable-2.2 branches.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoFix: missing check for metadata data pending
David Goulet [Tue, 27 Aug 2013 21:30:51 +0000 (17:30 -0400)] 
Fix: missing check for metadata data pending

Signed-off-by: David Goulet <dgoulet@efficios.com>
10 years agoTests: change buffers UID test to PID
David Goulet [Tue, 27 Aug 2013 21:30:45 +0000 (17:30 -0400)] 
Tests: change buffers UID test to PID

Signed-off-by: David Goulet <dgoulet@efficios.com>
This page took 0.042332 seconds and 5 git commands to generate.