Mathieu Desnoyers [Thu, 12 Jul 2012 17:01:14 +0000 (13:01 -0400)]
Implement filter bytecode support in lttng-session, and parse filter string
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 10 Jul 2012 19:15:04 +0000 (15:15 -0400)]
Implement filter expression to bytecode compiler in liblttng-ctl
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 11 Jul 2012 22:23:12 +0000 (18:23 -0400)]
Fix: The session list count should provide unique identifiers
Never decrement it.
Reported-by: Amer Alhalabi <amer.alhalabi@ericsson.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
David Goulet [Wed, 11 Jul 2012 17:20:39 +0000 (13:20 -0400)]
Network streaming support
This is a huge commit integrating a lot of new feature for network
streaming support with the lttng-relayd previously merged.
Please note that this commit is the initial import of the network
streaming feature meaning that this is NOT stable and SHOULD be
considered experimental hence not suited for production deployment.
API Changes:
lttng_create_session_uri(), lttng_enable_consumer(),
lttng_set_consumer_uri() and lttng_disable_consumer() calls are added.
The lttng command line now supports these new calls by introducing two
new commands and one modified. (Please look at the --help option for
more details).
$ lttng enable-consumer
$ lttng disable-consumer
The "lttng create" command can now take new arguments to specify the
destination URI for network streaming. There is also a new flag which
allows the user to disable the consumer for the session.
At this point, the now old deprecated lttng_create_session() call is
still supported but SHOULD be replaced by lttng_create_session_uri().
More calls will be added to the API in order to facilitate the creation
of lttng URI.
Network streaming:
Both kernel and user space tracing are supported for network streaming.
For now, only IPv4 and IPv6 protocol over TCP is supported. Two network
socket are used where one is for control commands and the second one is
for data transmission. The port are respectively 5342 and 5343.
BUGS: Streaming high throughput traces (e.g lttng enable-event -a -k)
with low bandwitdh available to the relayd, the tracer does not behave
well when the metadata are not emptied enough quickly so data are
missing on the remote target and the tracing is simply not stoppable.
This is a known bug and future iterations will try to fix it.
WARNING: At this stage, there is _NO_ security features meaning no
remote authentication on the relayd, no transport layer encryption or
network secure handshake of some sort. So, uses only for in-vitro
experiment or on _trusted_ networks.
Signed-off-by: Julien Desfossez <julien.desfossez@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Julien Desfossez [Tue, 10 Jul 2012 21:40:27 +0000 (17:40 -0400)]
Initial import of the new binary lttng-relayd
The lttng-relayd listens on the network and receives traces streamed by
the consumer.
At this first commit, the relayd supports IPv4 and IPv6 over TCP.
The following commits will add the support to use it with the lttng
command line interface, control library, consumer and session daemon.
Signed-off-by: Julien Desfossez <julien.desfossez@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Tue, 10 Jul 2012 21:30:37 +0000 (17:30 -0400)]
Add and change lttcomm socket API
Add lttcomm_alloc_sock_from_uri(), lttcomm_destroy_sock(),
lttcomm_alloc_copy_sock() and lttcomm_copy_sock(). Also add the relayd
command and lttcomm error message.
Change the create and alloc sock call API arguments.
Fix the fd leak in accept() function.
Signed-off-by: David Goulet <dgoulet@efficios.com>
Mathieu Desnoyers [Fri, 6 Jul 2012 14:13:05 +0000 (10:13 -0400)]
Fix: mmap write() for large subbuffers and handle EINTR (v2)
With large subbuffer (packet) size, if write() returns before copying the
entire packet for mmap buffers, the consumerd restarts the write
infinitely, which is not good at all.
This affects both lttng-ust (in default mmap mode) and lttng-kernel (but
only for mmap buffers, which is not the default).
This issue would show up with large subbuffer size.
We need to handle this case, as well as EINTR errors (which need to restart
write).
Also fixing the return value of mmap read functions, which were returning
the amount of data written by the last invocation of write() rather than
the total number of bytes written. splice use had the same issue.
Also now consider a write() that returns more bytes than requested as an
error.
Moreover, assigning error = ret after failed splice and write was a
mistake: error is holding the actual error value. ret just holds -1.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Tue, 3 Jul 2012 20:28:05 +0000 (16:28 -0400)]
Fix inet return value in the close() fct
Signed-off-by: David Goulet <dgoulet@efficios.com>
Mathieu Desnoyers [Fri, 29 Jun 2012 10:49:21 +0000 (12:49 +0200)]
Fix: add missing consumer.h to sessiond Makefile.am
Fix make dist.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 29 Jun 2012 10:43:14 +0000 (12:43 +0200)]
Fix: test make dist Makefile.am missing files
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 29 Jun 2012 10:40:30 +0000 (12:40 +0200)]
Fix: support large files on 32-bit systems
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
David Goulet [Fri, 22 Jun 2012 15:02:51 +0000 (11:02 -0400)]
Fix: enable event loglevel match function
For the loglevel type ALL, the value set in an event inside the session
daemon is -1 where the value received from the client is 0. For this
loglevel type, the loglevel does not matter.
This fixes the commit
c0657016bbb98e1769edbaba8c00221f964c7402 done
before version 2.0.2.
(Closes #283 #287)
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Tue, 19 Jun 2012 19:13:16 +0000 (15:13 -0400)]
Remove useless arg from kernel consumer send stream
The consumer_data structure was not used when sending kernel channel
streams to the consumer. Now the function uses the consumer_data
structure to get the consumer socket and the sock argument was removed.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Tue, 19 Jun 2012 15:15:38 +0000 (11:15 -0400)]
Fix: unchecked pointer from getenv() for lttng create
The lttng create command was not handling the return pointer from
getenv("HOME") and was passing it to a strdup() call.
(close #271)
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Tue, 19 Jun 2012 14:49:01 +0000 (10:49 -0400)]
Fix: problem in port assignment in uri_parse()
The functions now puts 0 in the port field of the lttng_uri structure if
NO port are specified. It's now the caller's job to assign a default
port for that case.
Since the uri_parse() function does not know the URI context, a default
port can not be assigned correctly.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Fri, 15 Jun 2012 15:00:11 +0000 (11:00 -0400)]
Add pipe creation to utils facility
Three new functions are added to create a pipe, create a pipe with
CLOEXEC flag and close a pipe.
Those functions are now used in the session daemon for all pipes and
cleanup.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 14 Jun 2012 18:48:49 +0000 (14:48 -0400)]
Add network transport layer to sessiond-comm
Only import the library files in sessiond-comm/ directory for network
communication supporting both TCP and UDP protocols with IPv4 and IPv6.
First layer needed for network streaming and communication with the
upcoming lttng-relayd daemon.
Signed-off-by: David Goulet <dgoulet@efficios.com>
Mathieu Desnoyers [Thu, 14 Jun 2012 14:43:04 +0000 (10:43 -0400)]
Fix: enable event with different loglevel error
This following example was NOT returning a correct error message.
"event1" is set with a loglevel "TRACE_CRIT". The normal behavior here
is that once enabled, you can not change the loglevel of the enable
event on the tracer side with a second command. It now returns a new
error message like so:
$ lttng enable-event event1 --loglevel-only TRACE-CRIT -u
$ lttng enable-event event1 --loglevel-only TRACE-WARNING -u
[...] Event already enabled with different loglevel
This commit makes the session daemon verify if _both_ the name and
loglevel are the same when enabling an event or else an error is
returned.
Also, the session daemon will continue enabling events and not return an
error is the loglevel does not match event for ust app on the tracer
which returns an EPERM at that stage. This is to address the case where
two applications have the same event name but with different loglevel.
Reported-by: Tan Dung Le Tran <tan.dung.le.tran@ericsson.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
David Goulet [Wed, 13 Jun 2012 21:08:05 +0000 (17:08 -0400)]
Add lttng URI support and default network ports
This commit simply adds the lttng_uri API/ABI to the upstream branch.
Three functions are provided by common/uri.h and are usable by linking
with libcommon.
The default network ports are also added for network streaming for both
control and data stream.
Signed-off-by: David Goulet <dgoulet@efficios.com>
Danny Serres [Fri, 8 Jun 2012 14:19:08 +0000 (10:19 -0400)]
Fix: Change the type of enabled in lttng_event to a signed int
Signed-off-by: Danny Serres <danny.serres@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 7 Jun 2012 17:16:09 +0000 (13:16 -0400)]
Create kernel-consumer.c/.h and consumer.h
Contains function call to send data to the kernel consumer (for now
session and channel streams).
Nothing new, code has just been moved to simplify main.c and partition
portion of code for clearer and easier understanding.
Signed-off-by: David Goulet <dgoulet@efficios.com>
Danny Serres [Wed, 6 Jun 2012 18:54:30 +0000 (14:54 -0400)]
Fix: move memset in channel_set_attr after NULL check
Signed-off-by: Danny Serres <danny.serres@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 7 Jun 2012 16:57:51 +0000 (12:57 -0400)]
Create unix.c/.h for UNIX socket communication
Simply split some content of sessiond-comm.c/.h to those two files for a
clearer code.
Signed-off-by: David Goulet <dgoulet@efficios.com>
Mathieu Desnoyers [Mon, 4 Jun 2012 22:08:24 +0000 (18:08 -0400)]
Fix: close all file descriptors when executed as daemon
Both sessiond and consumerd support the option "-d" to run as daemon. In
some specific cases, e.g. when launched from dpkg installation scripts,
file descriptors 3, 4, 5 are left open and don't seem to have O_CLOEXEC
flag set, so the install script hangs because the sessiond still holds a
reference to them. daemon(3) only closes standard FD 0, 1, 2.
Fix this issue by closing all file descriptors after calling daemon(3).
Note: we make sure no file descriptor is opened before calling daemon(3)
by moving the init_thread_quit_pipe() call after the FD close.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 1 Jun 2012 21:05:01 +0000 (17:05 -0400)]
Update lttng-ust header copy for disabled UST compilation
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 1 Jun 2012 21:01:13 +0000 (17:01 -0400)]
Fix: ust_app_list_events should return -ENOSYS when no UST
Caller thinks that memory is allocated, and incorrectly dereferences a
NULL pointer if we return 0 rather than -ENOSYS.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 31 May 2012 20:14:45 +0000 (16:14 -0400)]
cleanup output indentation for field listing
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 30 May 2012 20:27:39 +0000 (16:27 -0400)]
Implement event fields listing
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 25 May 2012 18:20:35 +0000 (14:20 -0400)]
Update lttng-ust-abi.h for event field listing
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Francis Giraldeau [Wed, 30 May 2012 23:50:07 +0000 (01:50 +0200)]
Fix comments formating in conf.c
Comments should be indented with one space only.
Signed-off-by: Francis Giraldeau <francis.giraldeau@gmail.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Francis Giraldeau [Wed, 30 May 2012 23:50:06 +0000 (01:50 +0200)]
Update documentation for destroy all option
Document the new option -a, --all of lttng destroy
Signed-off-by: Francis Giraldeau <francis.giraldeau@gmail.com>
Francis Giraldeau [Wed, 30 May 2012 23:50:05 +0000 (01:50 +0200)]
Add destroy all session option
Destroy was limited to one session at a time. The option -a, --all destroys all
registered sessions at once.
* fixed braces
Signed-off-by: Francis Giraldeau <francis.giraldeau@gmail.com>
Francis Giraldeau [Wed, 30 May 2012 23:50:04 +0000 (01:50 +0200)]
Improve delete of configuration
Adding functions to encapsulate the configuration delete. Test if path to
configuration exists before attempting to remove it.
* fixed braces and goto name
Signed-off-by: Francis Giraldeau <francis.giraldeau@gmail.com>
David Goulet [Thu, 31 May 2012 16:21:27 +0000 (12:21 -0400)]
Fix: clang llvm warnings
Mostly fix unsigned expression and implicit conversion.
URCU still shows warnings but irrelevant.
Signed-off-by: David Goulet <dgoulet@efficios.com>
Mathieu Desnoyers [Wed, 30 May 2012 13:53:42 +0000 (09:53 -0400)]
Add CodingStyle to tarball
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 30 May 2012 13:10:57 +0000 (09:10 -0400)]
Add coding style document
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 24 May 2012 17:46:40 +0000 (13:46 -0400)]
compat mman.h: add cygwin support
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 24 May 2012 17:46:21 +0000 (13:46 -0400)]
compat socket.h: add cygwin support
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 24 May 2012 16:07:21 +0000 (12:07 -0400)]
kernel-ctl: cygwin compatibility compile fix
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 24 May 2012 16:01:47 +0000 (12:01 -0400)]
poll compat wrapper: add cygwin support
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 24 May 2012 15:59:38 +0000 (11:59 -0400)]
Update fcntl cygwin support
cygwin has posix_fadvise
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 24 May 2012 15:49:55 +0000 (11:49 -0400)]
cygwin support: only freebsd needs to typedef loff_t
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 24 May 2012 15:01:03 +0000 (11:01 -0400)]
fix: add missing parenthesis
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 24 May 2012 15:00:11 +0000 (11:00 -0400)]
compat fcntl.h: add cygwin support
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
David Goulet [Tue, 8 May 2012 19:47:53 +0000 (15:47 -0400)]
Move futex.c/.h to libcommon
This is done so the future lttng-relayd and other possible binaries
could use it.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 19 Apr 2012 15:12:09 +0000 (11:12 -0400)]
Update version to 2.0.1 stable
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 19 Apr 2012 15:03:38 +0000 (11:03 -0400)]
Fix: test script for kernel module validation
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 19 Apr 2012 14:58:42 +0000 (10:58 -0400)]
Fix: report error to client on consumerd error
Adds a consumer daemon state flag that allows us to know the state of
the consumer during client command processing.
Please refer to the comment in lttng-sessiond/main.c above the
definition of those flags for more information and a possible race
condition issue.
This is a quick fix for bug #137 that will be merged in 2.0-stable
branch.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 16 Apr 2012 15:37:49 +0000 (11:37 -0400)]
Fix: replace 'modprobe -l' by lsmod in kernel test
Signed-off-by: David Goulet <dgoulet@efficios.com>
Mathieu Desnoyers [Thu, 12 Apr 2012 15:45:36 +0000 (11:45 -0400)]
Fix: add missing ht_destroy at consumer teardown
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 16 Apr 2012 15:19:15 +0000 (11:19 -0400)]
Remove useless test and fix message output
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 12 Apr 2012 18:54:28 +0000 (14:54 -0400)]
Wait for all apps in high-throughput test
Don't wait an arbitrary amount of time for application to end.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 12 Apr 2012 18:22:55 +0000 (14:22 -0400)]
Add multi-session test for UST
Signed-off-by: David Goulet <dgoulet@efficios.com>
Mathieu Desnoyers [Thu, 12 Apr 2012 01:57:31 +0000 (21:57 -0400)]
Fix: consumer fd recv thread should write into non-blocking pipe
Writing into a blocking pipe will cause the writer thread to block on
the poll fds thread when the pipe is full. Given that we would like to
batch stream array reallocation as much as possible, this wakeup should
not block.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 12 Apr 2012 01:07:13 +0000 (21:07 -0400)]
Fix: work-around glibc __nptl_setxid vs clone hang
hash table resize threads exit end up setting a "locked" state within
libc pthread, which deadlocks with seteuid/setegid called from the
cloned process in runas.c when runas() is called exactly when a resize
thread exits.
Temporarily fix this issue by adding a mutex cross this resize
operation, which holds mutual exclusion with runas() usage.
We should investigate whether we want to properly call exec() from the
runas.c clone child before touching any non-async-signal-safe libc call.
However, given that this change is more intrusive, let's first use this
mutex-based work-around.
Before this fix, running 1000 instances of "demo-trace 300" with
sessiond running as root, and:
lttng create
lttng enable-event -u -a
lttng start
would sometimes lead to consumerd hang with the following clone child
backtrace:
setxid_mark_thread (cmdp=<optimized out>, t=0x7f52dd47c700)
at allocatestack.c:995
995 allocatestack.c: No such file or directory.
(gdb) bt full
at allocatestack.c:995
ch = <optimized out>
at allocatestack.c:1088
t = 0x80
signalled = <optimized out>
result = <optimized out>
runp = 0x7f52dd47c9c0
at ../sysdeps/unix/sysv/linux/setegid.c:44
__p = 0xfffffffffffffe00
__cmd = {syscall_no = 119, id = {-1, 1000, -1}, cntr = 0}
result = <optimized out>
data = 0x7f52e66e1930
writelen = <optimized out>
writeleft = <optimized out>
index = <optimized out>
sendret = {i = 0, c = "\000\000\000"}
ret = <optimized out>
__func__ = "child_run_as"
at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
No locals.
No symbol table info available.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 11 Apr 2012 22:15:24 +0000 (18:15 -0400)]
Fix: consumer fd recv poll should be sensitive to POLLPRI too
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 11 Apr 2012 22:06:08 +0000 (18:06 -0400)]
Fix consumer lttng_consumer_poll_socket poll revents check bug
Was causing the sessiond to fail to receive streams under heavy load,
because this test needs to be done with a mask rather than equality.
Testing equality was failing as soon as POLLPRI (or any other flag) was
set.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
David Goulet [Wed, 11 Apr 2012 21:56:29 +0000 (17:56 -0400)]
Fix: increase consumer open files limit
Set ulimit of consumer when root so it can scales up to the session
daemon number of open files.
Signed-off-by: David Goulet <dgoulet@efficios.com>
Mathieu Desnoyers [Wed, 11 Apr 2012 00:33:57 +0000 (20:33 -0400)]
Update README: document dep on modprobe for kernel tracing
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 10 Apr 2012 21:39:40 +0000 (17:39 -0400)]
Fix tests: add missing session2 destroy
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
David Goulet [Tue, 10 Apr 2012 17:45:46 +0000 (13:45 -0400)]
Fix: increase wait time for UST high-throughput test
On slower system, this test failed due to the time period the test does
for applications to at least start tracing.
Add a warning on stdout telling that this is an arbitrary time and might
fail on slower system.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Tue, 10 Apr 2012 17:42:46 +0000 (13:42 -0400)]
Fix: wait for sessiond to stop in tests
Before returning from stop_sessiond bash function, we wait that the
sessiond daemon completely stopped. If it hungs up at that point, the
kill did not work and investigation can begin.
Signed-off-by: David Goulet <dgoulet@efficios.com>
Mathieu Desnoyers [Tue, 10 Apr 2012 15:38:49 +0000 (11:38 -0400)]
Fix: tests: error handling labels are in the wrong order
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
David Goulet [Tue, 10 Apr 2012 14:59:07 +0000 (10:59 -0400)]
Fix: remove unused return variable
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Fri, 6 Apr 2012 19:27:03 +0000 (15:27 -0400)]
Fix: kernel test scripts
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Fri, 6 Apr 2012 19:24:53 +0000 (15:24 -0400)]
Don't report back error on syscalls fail for -a -k
lttng enable-event -a -k will not report an error anymmore if enabling
syscall events has failed. Please refer to the commitdiff for a detailed
comment on why this is done like so.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 5 Apr 2012 19:56:43 +0000 (15:56 -0400)]
Fix: destroy context hash table being NULL
Passing an event unknown loglevel type to the session daemon (for UST
domain) was triggering an error code path to destroy the context hash
table of the event which is not created once the error is hit.
Fix a segfault completely killing the session daemon.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 5 Apr 2012 19:49:32 +0000 (15:49 -0400)]
Add channel command in utils.sh of tests
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 5 Apr 2012 19:48:23 +0000 (15:48 -0400)]
Improve UST tracing actions test
Test all possible lttng command for UST domain.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 5 Apr 2012 19:46:52 +0000 (15:46 -0400)]
Add wildcard test to UST
Rename test file and add two event wildcard type to the test.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 5 Apr 2012 15:39:59 +0000 (11:39 -0400)]
Fix: make lttng expand path for trace output opt
lttng create --output was passing the path string to the session daemon
and thus, for relative path like './mytraces', it was created in the
current directory of the session daemon.
Now lttng command line uses the realpath(3) of the --output string and
denies creation if multiple level of directory does not exist (Ex:
/tmp/foo/bar/chap, if foo/ does not exist, it is refused).
Directory creation still occurs on the session daemon side.
Reported-by: Ettore Del Negro <ettore@ettoredelnegro.me>
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Tue, 3 Apr 2012 18:36:14 +0000 (14:36 -0400)]
Fix: remove tests from runall script
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Tue, 3 Apr 2012 18:29:01 +0000 (14:29 -0400)]
Fix: return value signedness
Also remove repeated include headers.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Tue, 3 Apr 2012 16:09:16 +0000 (12:09 -0400)]
Fix: man page environment variable name error
Reported-by: Ryan Kyser <Ryan.Kyser@jci.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Tue, 3 Apr 2012 14:48:04 +0000 (10:48 -0400)]
Fix: check return value on getenv USER
System with no environment variable USER, one of the easter egg caused a
segfault on certain embedded linux platforms.
Other getenv() of the project were audited to ensure that the return
value is checked.
Reported-by: Ryan Kyser <Ryan.Kyser@jci.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 2 Apr 2012 20:30:51 +0000 (16:30 -0400)]
Remove useless test
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 2 Apr 2012 18:44:55 +0000 (14:44 -0400)]
Add before-after test
Test tracing before and after application execution.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 2 Apr 2012 16:14:53 +0000 (12:14 -0400)]
Cleanup debug printf in test
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 2 Apr 2012 16:10:05 +0000 (12:10 -0400)]
Fix tests when lttng-ust is disabled
(close #200)
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 2 Apr 2012 15:57:23 +0000 (11:57 -0400)]
Add low-throughput test
Test during 20 minutes events at each minute, 10 minutes and 20 minutes.
It validates the event order with an incremental counter.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Tue, 27 Mar 2012 20:04:27 +0000 (16:04 -0400)]
Add high-throughput test
This tests high number of events being recorded with multiple concurrent
instrumented applications.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Tue, 6 Mar 2012 21:59:55 +0000 (16:59 -0500)]
Improve tests and change tests/ directory layout
Add run-report.py and test_list.py files which are an extended test framework
providing memory and CPU sampling of the session daemon during the tests.
Tests are now divided on a per package basis. The kernel/ directory contains
integration tests for lttng-modules (kernel tracer). ust/ directory contains
tests for lttng-ust and tools/ directory has the unit tests of lttng-tools
itself which does not test tracer integration.
First patch aimed at improving test coverage of the lttng 2.0 toolchain and
provide the python framework for more detailled analysis.
Use make check to run them all or use run-report.py and select which tests to
run in test_list.py.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Tue, 20 Mar 2012 22:32:45 +0000 (18:32 -0400)]
Update version to 2.0.0 stable
ROCK ON!!!
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Tue, 20 Mar 2012 20:42:48 +0000 (16:42 -0400)]
Update version to v2.0.0-rc4
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Tue, 20 Mar 2012 20:19:16 +0000 (16:19 -0400)]
Fix: add small detail to enable-channel man page
(close #192)
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Tue, 20 Mar 2012 20:15:56 +0000 (16:15 -0400)]
Fix: warned of arbitrary time for ust-nprocesses test
(close #157)
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Tue, 20 Mar 2012 20:09:51 +0000 (16:09 -0400)]
Fix. add limitation to man page
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Tue, 20 Mar 2012 19:53:22 +0000 (15:53 -0400)]
Fix: minor changes to lttng.1
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Tue, 20 Mar 2012 19:51:14 +0000 (15:51 -0400)]
Fix: add exit values to lttng.1 man page
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Tue, 20 Mar 2012 19:33:10 +0000 (15:33 -0400)]
Fix: add delay before validating apps in test nproc
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Tue, 20 Mar 2012 19:32:43 +0000 (15:32 -0400)]
Fix: error handling in lttng enable-event
Signed-off-by: David Goulet <dgoulet@efficios.com>
Raphaël Beamonte [Sun, 18 Mar 2012 02:02:53 +0000 (22:02 -0400)]
Fix: document structure init. to 0 in lttng.h
Document the fact that the structures should be initialized to zero in
lttng.h since there is no init function.
(close #135)
Signed-off-by: Raphaël Beamonte <raphael.beamonte@gmail.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Tue, 20 Mar 2012 18:55:52 +0000 (14:55 -0400)]
Fix: uninitialized variable
Signed-off-by: David Goulet <dgoulet@ev0ke.net>
Mathieu Desnoyers [Tue, 20 Mar 2012 18:53:07 +0000 (14:53 -0400)]
Keep track of FD used for UST applications (v2)
Allow to keep 25% of file descriptors reserved for commands/kernel
tracing/internal communication within the sessiond by limiting
applications to 75% of the available file descriptors. This ensures
traced applications cannot cause a sessiond denial of service.
Changelog since v1:
- Add missing fd-limit.h
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Julien Desfossez [Tue, 20 Mar 2012 15:19:14 +0000 (11:19 -0400)]
Fix: lttng view, error message and exit code
lttng view is a frontend command, when the viewer is not found in the
path, the error message should be human readable (no need for the
developper-oriented debug message).
Also the return code must indicate that something went wrong if the
viewer is not on the system.
(fix #144)
Signed-off-by: Julien Desfossez <julien.desfossez@efficios.com>
Signed-off-by: David Goulet <dgoulet@ev0ke.net>
Yannick Brosseau [Tue, 20 Mar 2012 15:37:09 +0000 (11:37 -0400)]
Small fixes to lttng man pages (v2)
Signed-off-by: Yannick Brosseau <yannick.brosseau@gmail.com>
David Goulet [Tue, 20 Mar 2012 18:35:38 +0000 (14:35 -0400)]
Merge branch 'master' of git://git.lttng.org/lttng-tools
David Goulet [Tue, 20 Mar 2012 18:33:23 +0000 (14:33 -0400)]
Fix: handle EINTR for sendmsg syscall
(close #170)
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Tue, 20 Mar 2012 18:27:12 +0000 (14:27 -0400)]
Fix: lttng UI exit value and error message
Change lttcomm error code starting value from 1000 to 10. This way, bash
can return the exact error code since 255 is the maximum.
Fix multiple warning, error and message output.
Some return code could still be not "standardize" but for stable it's
ok. Fixes can come later on.
(close #105)
Signed-off-by: David Goulet <dgoulet@efficios.com>
Mathieu Desnoyers [Tue, 20 Mar 2012 17:39:20 +0000 (13:39 -0400)]
Fix: session lock use after free
The session lock is broken in that it does not handle teardown correctly
(use after free). Surround each usage by the session list lock for now
to fix this issue, and don't unlock the session lock after free. Since
each session lock usage is surrounded by session list lock, no other
thread will be left waiting on this lock when the session destroy is
performed.
This effectively renders useless the per-session lock. Leave it there
for now to minimize code change before 2.0 final.
This locking scheme will be revisited for lttng 2.1.
Acked-by: David Goulet <dgoulet@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
This page took 0.043251 seconds and 4 git commands to generate.