Daniel Thibault [Tue, 24 Jan 2012 22:32:47 +0000 (17:32 -0500)]
Fix file descriptor leak and typo in conf.c
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Tue, 24 Jan 2012 19:49:05 +0000 (14:49 -0500)]
Rename env var to standard LTTNG_ prefix
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Tue, 24 Jan 2012 18:53:16 +0000 (13:53 -0500)]
Fix typo in lttng cli comments
Signed-off-by: David Goulet <dgoulet@efficios.com>
Yannick Brosseau [Tue, 24 Jan 2012 18:44:01 +0000 (13:44 -0500)]
Use correct variable in list bash autocompletion
Signed-off-by: Yannick Brosseau <yannick.brosseau@gmail.com>
David Goulet [Tue, 24 Jan 2012 18:36:40 +0000 (13:36 -0500)]
Add kernel requirements
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Tue, 24 Jan 2012 18:04:05 +0000 (13:04 -0500)]
Remove useless COPYING file
Fix typo in LICENSE
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Tue, 24 Jan 2012 17:30:45 +0000 (12:30 -0500)]
First import of extras/ with lttng bash completion
Creation of the extras/ directory. Will mostly contains third part
scripts or tools not core to the project.
Adds the lttng bash completion script which can be copied to
/etc/bash_completion.d/lttng for first and second level command auto
completion.
Thanks to Simon Marchi for this contributions!
Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Simon Marchi [Tue, 24 Jan 2012 16:28:04 +0000 (11:28 -0500)]
Add a '--list-options' option to each command.
This is intended to be used for programmable Bash completion.
Modified from previous version:
- Changed '\0' to 0 to match current coding style.
Changes made by David Goulet:
- Check args for --list-options in lttng cli to stop auto execution of
the session daemon.
- Adds --list-options to all help. (Hidding command is bad :P)
- Fix uninitialized ret value in enable channel
Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca>
Acked-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Tue, 24 Jan 2012 16:49:49 +0000 (11:49 -0500)]
Check kernel version for tests
Test using the session daemon must be done on a kernel version 2.6.27 or
higher for lttng-tools and lttng-ust requirements. Before starting a
session daemon, tests validate the kernel version and stop them if the
kernel is too old.
This is *really* important for launchpad build system which compile and
run our tests on 2.6.24 kernel.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Tue, 24 Jan 2012 15:17:30 +0000 (10:17 -0500)]
Add MSG_WAITALL to recvmsg of sessiond-comm
Get the complete message on receive. We do not handle receiving split
data with the lttcomm_recv_unix_sock which is *not* good but for now we
will simply add this flag since every call should block anyway and does
not require any other funky flags.
This issue was detected with the kernel events listing failing by
sending half of the data half the time.
Reported-by: Daniel Thibault <daniel.thibault@drdc-rddc.gc.ca>
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 23 Jan 2012 23:08:42 +0000 (18:08 -0500)]
Implement UST calibrate and change default
Calibrate now works for UST (even if ust does not implement it now).
Only --function is exposed since it's the only one implemented and also
becomes the default.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 23 Jan 2012 22:51:01 +0000 (17:51 -0500)]
Update lttng ust ABI/API copy
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 23 Jan 2012 21:55:40 +0000 (16:55 -0500)]
Change not implemented error to undefined.
Aiming to a stable release, "not implemented" message are not a good
idea for user to see.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 23 Jan 2012 21:42:30 +0000 (16:42 -0500)]
Disable lttng ust domain not implemented
Keep them in lttng.h to retain values for future development.
Also fix define alignment in lttng.h
Note that at this commit, "Not implemented" error is still returned.
This will be fix to "Unknown command" in next commit.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 23 Jan 2012 20:35:14 +0000 (15:35 -0500)]
Update version to 2.0-pre18
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 23 Jan 2012 20:25:55 +0000 (15:25 -0500)]
Update TODO list
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 23 Jan 2012 19:12:46 +0000 (14:12 -0500)]
Change SIGCHLD to SIGUSR1 when lttng waiting on sessiond
Using lttng cli, if the session daemon dies after exec(), a SIGCHLD is
returned. It was catched but not handled to cleanly quit and inform the
user that the session daemon failed.
We now use SIGUSR1 to signal the lttng cli that the session daemon is
ready to receive command.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 23 Jan 2012 18:31:16 +0000 (13:31 -0500)]
Fix kernel version to only test major version
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 23 Jan 2012 17:01:35 +0000 (12:01 -0500)]
Add UST version validation
Upon registration of an UST app, we now check the version compatibility
with the session daemon and set a compatible bit. Only the major version
is validated since major version bump implies ABI/API breakage.
For now, every action on the application list check the app compatible
bit before executing it. We are too close from a stable release so hard
*not standard* check is done across the map for ust-app. The downside is
that the client will not get informed of any incompatible app upon any
action on the tracer using lttng cli.
If the version is NOT compatible, the register done is sent and the app
is kept in the registry. We can't close the socket or deny the
registration because if the env. var LTTNG_UST_REGISTER_TIMEOUT=-1 is
set on the app side, infinite loop will occur and possibly stall the
app.
New sessiond comm. version error added but not use at this commit.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Sun, 22 Jan 2012 21:23:38 +0000 (16:23 -0500)]
Update lttng kernel modules names
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Sun, 22 Jan 2012 21:11:11 +0000 (16:11 -0500)]
Add kernel module version validation
The session daemon now checks if the kernel modules are compatible
whenever it tries to load them.
Introduce modprobe.c/.h and kern-modules.h that contains the lttng
modules information and function to load/remove them. Also add a call to
kernel.c for kernel version validation.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Sun, 22 Jan 2012 21:10:03 +0000 (16:10 -0500)]
New sessiond comm error for kernel version
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Sun, 22 Jan 2012 21:09:24 +0000 (16:09 -0500)]
Add missing string.h header for strerror_r()
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Fri, 20 Jan 2012 22:06:11 +0000 (17:06 -0500)]
Fix missing headers in Makefiles
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Fri, 20 Jan 2012 22:02:29 +0000 (17:02 -0500)]
Update README
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Fri, 20 Jan 2012 21:57:25 +0000 (16:57 -0500)]
Move all default values to defaults.h
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Fri, 20 Jan 2012 21:43:59 +0000 (16:43 -0500)]
Rename lttngerr.h to error.h
Also add this header in common.h.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Fri, 20 Jan 2012 21:30:23 +0000 (16:30 -0500)]
Split and remove lttng-share header file
This header is split into two files: defaults.h and macros.h.
A third header is introduce here which is common.h including runas.h and
macros.h which are part of the common library. Since the defaults.h
contains only defaults values, it seems ok to keep it seperate from the
common library having only macros and function calls.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Fri, 20 Jan 2012 20:54:18 +0000 (15:54 -0500)]
Fix DBG message grammatical error
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Fri, 20 Jan 2012 20:51:04 +0000 (15:51 -0500)]
Move compat to common and create an internal lib
libcompat is the name of the new lib.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Fri, 20 Jan 2012 20:44:44 +0000 (15:44 -0500)]
Rename cmd.h for command.h
Also move utils.h and conf.h inside the command.h because every lttng
cli commands are using those headers.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Fri, 20 Jan 2012 20:37:52 +0000 (15:37 -0500)]
Add missing headers for make dist
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Fri, 20 Jan 2012 20:07:15 +0000 (15:07 -0500)]
Fix off-by-one and double list size instead of steady increment
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Fri, 20 Jan 2012 18:17:16 +0000 (13:17 -0500)]
Complete change of the source directory tree
For the sake of clearness and awesomeness :P, this change was needed for
better semantic across the code and better organization of source files.
src/
--> Contains source files of the project
bin/
--> Contains every binaries this git tree builds (lttng,
lttng-sessiond and lttng-consumerd).
lib/
--> Contains exported libraries (lttng-ctl).
common/
--> Contains shared code for the entire project. (internal
libraries mostly)
Every internal headers are moved from include/ to src/common. The
include directory only contains exported public headers now
(lttng/lttng.h). The -I$(top_srcdir)/src is also added for all
Makefiles.
The consumerd APIs are not exported anymore. The reason is that the
consumer will get completely re-engineered in the next months. It's our
safety net for the APIs breakage of the coming year concerning the
consumerd library.
Renaming is done also on some internal libraries to follow the naming
convention. The public library liblttngctl is renamed to liblttng-ctl
making it linkable now with "-llttng-ctl" deprecating the old
"-llttngctl".
No code is changed with this commit except #include statements
added/removed/renamed. This is why there is yet files and internal API
calls that does not follow the naming convention (Ex: lttngerr.h,
lttng-share.h in src/common).
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 19 Jan 2012 19:12:39 +0000 (14:12 -0500)]
Update version to 2.0-pre17
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 19 Jan 2012 19:06:43 +0000 (14:06 -0500)]
Fix missing files for make dist
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 19 Jan 2012 18:43:57 +0000 (13:43 -0500)]
Don't init kernel tracer if not root (UID=0)
No point of trying to init kernel tracer if the session daemon is not
root. At this time, only UID=0 can load kernel modules and interact with
the lttng kernel tracer.
Reported-by: Daniel Thibault <daniel.thibault@drdc-rddc.gc.ca>
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Wed, 18 Jan 2012 17:21:42 +0000 (12:21 -0500)]
Fix strncmp for the help option check
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Tue, 17 Jan 2012 22:05:10 +0000 (17:05 -0500)]
Fix double free and out of order delete session
Failing to create metadata, the data structure was freed but the pointer
was not set to NULL. When deleting the metadata of that session (that
has failed), the pointer was not NULL creating a "valid" pointer for the
check and creating a double free error. This failure happens when the
session daemon reached the maximum number of open files.
Also, on destroy trace, the ust app session was freed and deref. just
after creating an invalid pointer access.
Finally, set the started flag of a ust app session to 0 when stopping
the session.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Tue, 17 Jan 2012 22:03:57 +0000 (17:03 -0500)]
Don't start session daemon with --help on the cli
Any --help or -h will not spawned anymore a session daemon when used
with lttng cli.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Tue, 17 Jan 2012 21:20:18 +0000 (16:20 -0500)]
Fix UST tests if lttng-ust is not available
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Tue, 17 Jan 2012 20:51:58 +0000 (15:51 -0500)]
Fix code syntax
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Tue, 17 Jan 2012 18:38:48 +0000 (13:38 -0500)]
Add UST test ust-nprocesses
Simple to test that launches 100 instrumented applications and validate
that they are all registered to the session daemon.
After that, one event is enabled, tracing starts/stops and finally the
tracing session gets destroyed.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Tue, 17 Jan 2012 18:37:56 +0000 (13:37 -0500)]
Make MSG() print on stdout instead of stderr
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 16 Jan 2012 22:25:49 +0000 (17:25 -0500)]
Add UST test for n events using validation
ust-nevents tests an instrumented application generating 100 events and
validating that those events are found using babeltrace (need to be
installed).
Adds the tests/utils.sh which is a family of function used to interact
with lttng cli. There is also a trace_matches function which uses
babeltrace to find string patterns.
Also, the session daemon is spawned at the beginning of runall.sh and
killed at the end. This means that all tests are done on a single
session daemon instance. Thus, session name across tests have to be
unique! From now on, each test should use the file name as a unique
identifier for the session name.
Finally, fixed the session name for all tests. At this commit, "make
check" or "sudo make check" should pass.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 16 Jan 2012 18:12:02 +0000 (13:12 -0500)]
Add UST validation test for data structure
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 16 Jan 2012 17:15:18 +0000 (12:15 -0500)]
Fix runas namespace
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 16 Jan 2012 17:00:24 +0000 (12:00 -0500)]
Move runas.h to common/ directory
Simply put to improve semantic over the code includes and knowing that
runas.h comes from the common library.
It's arguable to do this across the code base for all internal
libraries. This should be discuss at least for the code tree
consistency.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 16 Jan 2012 16:54:20 +0000 (11:54 -0500)]
Add UST test binaries to gitignore
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Mon, 16 Jan 2012 16:08:35 +0000 (11:08 -0500)]
Add two basic tests for UST global domain
They test basic functionnality of UST meaning creating
channel/session/event, enabling/disabling, start/stop and destroy the
session.
Those two tests *does not* use UST instrumented application. They only
test support and communication between lttng cli and session daemon.
Integrated with "make check"
Signed-off-by: David Goulet <dgoulet@efficios.com>
Mathieu Desnoyers [Fri, 13 Jan 2012 21:18:27 +0000 (16:18 -0500)]
Remove CLONE_VM flag
Makes debugging with GDB impossible. We'll have to revisit the actual
performance impact of not having CLONE_VM in place eventually.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Yannick Brosseau [Fri, 13 Jan 2012 15:23:49 +0000 (10:23 -0500)]
Remove stringify and add quotes directly in the configure
Some part of the path where the same as some defined variable and
the resulting string conversion gave the wrong result.
Remove the whole stringify function, since its use can be misleading
Signed-off-by: Yannick Brosseau <yannick.brosseau@gmail.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Alexandre Montplaisir [Thu, 12 Jan 2012 22:50:36 +0000 (17:50 -0500)]
Add debug output to sessiond's kernel consumer selection
Signed-off-by: Alexandre Montplaisir <alexandre.montplaisir@gmail.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Alexandre Montplaisir [Thu, 12 Jan 2012 22:50:35 +0000 (17:50 -0500)]
Add libdir and bindir outputs to configure
Signed-off-by: Alexandre Montplaisir <alexandre.montplaisir@gmail.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Alexandre Montplaisir [Thu, 12 Jan 2012 22:50:34 +0000 (17:50 -0500)]
Add target arch and paths to the configure output
The two eval's are needed to correctly expand the variables in the
default path.
Signed-off-by: Alexandre Montplaisir <alexandre.montplaisir@gmail.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Fri, 13 Jan 2012 18:47:24 +0000 (13:47 -0500)]
Fix multiple error handling for UST tracing
Bad error handling was making event and channel out of sync between
trace ust and ust app data structure.
This makes the session daemon way more stable for the case the sessiond
and/or UST tracer reach the maximum number of open files.
Fix memory leaks upon error when creating a session/channel/event.
Fix out of order add unique channel node to hash table.
Finally, fix some debug/error statements.
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Fri, 13 Jan 2012 15:10:58 +0000 (10:10 -0500)]
Merge branch 'master' of git://git.lttng.org/lttng-tools
Mathieu Desnoyers [Thu, 12 Jan 2012 22:49:31 +0000 (17:49 -0500)]
Fix incorrect error message for stop trace
Reported-by: Tan Dung Le Tran <tan.dung.le.tran@ericsson.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 12 Jan 2012 19:39:23 +0000 (14:39 -0500)]
Fix ht default size test
in the line:
size != 0 ? : (size = DEFAULT_HT_SIZE);
we should notice that the lack of ( ) around "size != 0" leads to the
following behavior: the compiler will try to evaluate
"0 ? : (size = DEFAULT_HT_SIZE)"
and compare it to size, which is not the expected behavior.
Use a standard "if (cond)" test instead. The ? : expression is not
needed here anyway, it just complicates the code.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 12 Jan 2012 19:30:04 +0000 (14:30 -0500)]
UST consumer: close shm fd after mapping it
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 12 Jan 2012 18:51:08 +0000 (13:51 -0500)]
Update lttng-ust-abi.h local copy
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 12 Jan 2012 18:47:09 +0000 (13:47 -0500)]
Remove unneeded fields assignments (should not use those UST-internal fields)
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
David Goulet [Thu, 12 Jan 2012 18:04:51 +0000 (13:04 -0500)]
Fix out of order channel insert in hash table
The channel, ust-app side, was added to the hash table of the session
even if the creation failed on the tracer side. When enabling event for
that channel, a segfault was hit since the channel did not exist on the
tracer side and channel_data was NULL at this point.
Now the channel insertion in the hash table is done *after* enabling it
on the tracer side.
Reported-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 12 Jan 2012 15:59:38 +0000 (10:59 -0500)]
Add missing rcu register thread calls
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Thu, 12 Jan 2012 15:47:13 +0000 (10:47 -0500)]
Fix trace UST destroy channel
The trace_ust_destroy_channel call was iterating over the internal
events hash table and destroying the complete hash table at each event
which makes no sense at all. This caused a major segfault in the hash
table data structure when destroying a session.
Reported-by: Tan Dung Le Tran<tan.dung.le.tran@ericsson.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Wed, 11 Jan 2012 22:09:54 +0000 (17:09 -0500)]
Make consumer verbose only with --verbose-consumer option
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Wed, 11 Jan 2012 20:21:58 +0000 (15:21 -0500)]
Add missing rcu read lock and add assert
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Wed, 11 Jan 2012 19:51:04 +0000 (14:51 -0500)]
RCU support for consumer's hash tables
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Wed, 11 Jan 2012 17:03:07 +0000 (12:03 -0500)]
Add lttng hash table support to liblttng-consumer
Remove linked list usage from liblttng-consumer and replace them by
lockless RCU hash tables.
Note that there is still a mutex lock protecting those hash tables and
no RCU lock mechanism used. For now, it's OK and a very small
performance hit.
Signed-off-by: David Goulet <dgoulet@efficios.com>
Mathieu Desnoyers [Tue, 10 Jan 2012 20:25:34 +0000 (15:25 -0500)]
Remove application from socket hash table upon unregister
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 10 Jan 2012 19:37:33 +0000 (14:37 -0500)]
Fix id vs uid confusion introduced by merge of new hash table code
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 10 Jan 2012 18:55:26 +0000 (13:55 -0500)]
Remove incorrect assert in hash table lookup
key can be NULL (0 value is allowed).
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Gerlando Falauto [Thu, 5 Jan 2012 11:25:29 +0000 (12:25 +0100)]
lttng-sessiond: do not call ustctl_register_done()
When lttng-ust support is not enabled, compilation might fail with:
lttng-tools.git/lttng-sessiond/main.c:1167: undefined reference to
`ustctl_register_done'
Actually when HAVE_LIBLTTNG_UST_CTL is not defined, the function call is
normally optimized out by the compiler because ust_app_register() is a
static inline alway returning a negative value, leaving the call within
unreachable code.
Depending on the compiler version and optimization flags, this may
however not always happen, leading to the above error.
Therefore replace ustctl_register_done() with ustapp_register_done(),
which calls the original function when lttng-ust is enabled, and returns
an error otherwise (it is unreachable code anyway).
Signed-off-by: Gerlando Falauto <gerlando.falauto@keymile.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
David Goulet [Fri, 16 Dec 2011 22:14:21 +0000 (17:14 -0500)]
Add and support the new hash table library
liblttng-ht/ is the library introduced for hash table management.
This library uses the URCU ht-shrink branch (not yet upstream) making
the lib completely lockless. Import git head URCU hashtables at commit:
91a75cc579698814e47877cc8927fcae1f573739
Note that urcu hash table files are copied from the urcu git ree to this
git tree waiting for them to be upstream and stable.
Old hash table files are removed from libcommon.
Signed-off-by: David Goulet <dgoulet@efficios.com>
Mathieu Desnoyers [Mon, 9 Jan 2012 15:22:06 +0000 (10:22 -0500)]
Add missing Makefile.am in common/
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sat, 7 Jan 2012 21:19:51 +0000 (16:19 -0500)]
Move runas to common/
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sat, 7 Jan 2012 21:14:38 +0000 (16:14 -0500)]
Move hash table to common/ directory
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sat, 7 Jan 2012 19:56:55 +0000 (14:56 -0500)]
runas: use CLONE_VM flag
Having to clone the vma each time runas is executed brings a significant
slowdown to the "start" operation when done with attached application,
and to the file creation needed when an application is attaching to the
sessiond. Use CLONE_VM flag to speed this up.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 6 Jan 2012 21:52:28 +0000 (16:52 -0500)]
runas: use waitpid instead of wait
Deal with multithreading by waiting specifically for the pid we cloned.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
David Goulet [Fri, 23 Dec 2011 16:19:08 +0000 (11:19 -0500)]
Update version to 2.0-pre16
Signed-off-by: David Goulet <david.goulet@polymtl.ca>
Mathieu Desnoyers [Thu, 22 Dec 2011 02:35:19 +0000 (21:35 -0500)]
test_sessions: add fflush after printf not ending with newline
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 22 Dec 2011 02:32:45 +0000 (21:32 -0500)]
clone: return instead of exit()
Calling exit() from the cloned process is a bad idea, because we share
file descriptors with the parent, and exit() has side-effects (anyway,
more than the low-level _exit()).
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 21 Dec 2011 23:44:36 +0000 (18:44 -0500)]
Fix stack of librunas child by using mmap and a larger stack
Did cause SIGSEGV for tests/test_sessions.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 21 Dec 2011 15:42:51 +0000 (10:42 -0500)]
Only seteuid/setegid if they differ from current values
According to seteuid(2):
According to POSIX.1, seteuid() (setegid()) need not permit euid (egid)
to be the same value as the current effective user (group) ID, and some
implementations do not permit this.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 21 Dec 2011 15:21:29 +0000 (10:21 -0500)]
Only allow the user or group owning the session (or root) to control a session
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 21 Dec 2011 14:44:24 +0000 (09:44 -0500)]
librunas: clone another process also if not root
Still useful to isolate umask(0).
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 21 Dec 2011 02:46:48 +0000 (21:46 -0500)]
Create output directory at session creation command
Otherwise it is weird to see that we are using a directory that we don't
have write access to. Better to fail immediately on the create command.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 21 Dec 2011 02:33:13 +0000 (21:33 -0500)]
Implement open_run_as, using clone() CLONE_FILES
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 20 Dec 2011 23:01:10 +0000 (18:01 -0500)]
librarize run_as
still TODO: finish open_run_as -- need to pass the file descriptor back
to the parent. Currently using a racy open+fchown work-around.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 20 Dec 2011 21:42:58 +0000 (16:42 -0500)]
Implement run_as wrappers for mkdir/mkdir_recursive/open
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 20 Dec 2011 21:09:32 +0000 (16:09 -0500)]
Introduce run_as for mkdir_recursive
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 20 Dec 2011 20:19:01 +0000 (15:19 -0500)]
Create all trace directories and files with client user credentials
Keep the client user credentials that created a session along with the
session. Use exactly those credentials to chown the created directories
and files.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 20 Dec 2011 18:12:30 +0000 (13:12 -0500)]
Rename sessiond internal "uid" fields to "id"
Ensure we don't confuse "user ID" (UID) and session unique ID
(session_id or id).
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
David Goulet [Fri, 16 Dec 2011 17:26:03 +0000 (12:26 -0500)]
Change easter egg MSG to DBG
Signed-off-by: David Goulet <david.goulet@polymtl.ca>
David Goulet [Fri, 16 Dec 2011 17:23:52 +0000 (12:23 -0500)]
Add debug statement
Signed-off-by: David Goulet <david.goulet@polymtl.ca>
David Goulet [Fri, 16 Dec 2011 17:15:28 +0000 (12:15 -0500)]
Support creds passing between lttng and sessiond
From now on, the lttng command line sends it's credential at each
command along with the regular communication data.
The tracing output directory is set to those credentials (uid/gid) if
the session daemon is running as a regular user (even if the user is in
the tracing group). So *no* tracing group is ever set if the session
daemon is not running as a non-root user.
If the sessiond is running as root, the tracing group is set (if exist)
and the uid of the calling user is used.
This fixes the triple enable-channel/event needed to trace UST
applications with a non-root session daemon. This was reported by
Yannick Brosseau <yannick.brosseau@polymtl.ca>.
Signed-off-by: David Goulet <david.goulet@polymtl.ca>
David Goulet [Fri, 16 Dec 2011 17:12:35 +0000 (12:12 -0500)]
Add support for passing credentials over Unix sock
Add lttcomm_* functions for sending, receiving and setting socket option
to pass credentials over a Unix socket. Those functions allowed normal
data to be pass as well.
First commit of a series to enable credentials passing between the lttng
command line client and the session daemon.
Signed-off-by: David Goulet <david.goulet@polymtl.ca>
David Goulet [Thu, 15 Dec 2011 16:42:44 +0000 (11:42 -0500)]
Fix nested double usage of hashtable iterators
Also cleanup iterator declaration by moving the nested iterator inside
the loop scope.
Reported-by: Yannick Brosseau <yannick.brosseau@polymtl.ca>
Signed-off-by: David Goulet <david.goulet@polymtl.ca>
David Goulet [Wed, 14 Dec 2011 21:24:42 +0000 (16:24 -0500)]
Add disable kernel tracing option to sessiond
Use --no-kernel to completely disable kernel tracing.
Reported-by: Tan Dung Le Tran <tan.dung.le.tran@ericsson.com>
Signed-off-by: David Goulet <david.goulet@polymtl.ca>
David Goulet [Tue, 13 Dec 2011 21:25:39 +0000 (16:25 -0500)]
Update version to 2.0-pre15
Signed-off-by: David Goulet <david.goulet@polymtl.ca>
This page took 0.044211 seconds and 5 git commands to generate.