Fix: get consumer lock before closing/pushing metadata

This is to ensure the validity of the metadata stream in the channel
before closing or pushing the metadata on it.

Fixes #536

Acked-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
Tests: Add stress test for multi session per UID

For this test, 10 applications are used with 5 sessions set with per UID
buffers.

A helper script is also added which launch applications with given
parameters. A README file is also present to help developers/users use
the stress tests correctly.

Stress tests save the stderr/stdout of the session daemon in a log file
and core dump created using the name found in core_pattern (in /proc).

Signed-off-by: David Goulet <dgoulet@efficios.com>
Tests: Add multi session per UID with 5 app in streaming mode

Signed-off-by: David Goulet <dgoulet@efficios.com>
Fix: typo when closing the consumer client socket

Issue 1019917 of covertiry scan.

Signed-off-by: David Goulet <dgoulet@efficios.com>
Fix: wrong size in memcpy of kernel channel padding

Issue 1019925 of coverity scan.

Signed-off-by: David Goulet <dgoulet@efficios.com>
Fix: remove dead code

Signed-off-by: David Goulet <dgoulet@efficios.com>
Fix: dereference after NULL check

From coverity scan.

Signed-off-by: David Goulet <dgoulet@efficios.com>
Add a lttng-ctl header to facilitate code separation

In order for lttng-ctl.c not to grow into an uncontrollable monster of
code, add this helper header and remove static declaration of some
functions to be exported out of the C file and set them hidden.

Future work on snapshot and trigger will use it in order to better split
the code into different files.

Signed-off-by: David Goulet <dgoulet@efficios.com>
Move multiple URLs parsing fct from lttng-ctl to uri.c

Just move some functions around so we can use the multiple URLs parsing
to URIs function outside of liblttng-ctl.

Signed-off-by: David Goulet <dgoulet@efficios.com>
Add consumer-stream.c/.h in libconsumer

This new file contains relevant calls to a lttng_consumer_stream object
and for now breaks down consumer_del_stream() in consumer.c that got out
of hand in terms of size and can not be used if the stream was not
previously successfully added to a thread which makes difficult the
deletion of a stream in some error path or in no monitor mode (future
mode for streams with snapshots).

It helps also modularize the consumer object a bit better and makes this
code a bit easier to maintain and to evolve better.

At this commit, no components use this yet. Future work will
incrementaly move every consumer stream specific actions to that file
and of course use those calls.

Signed-off-by: David Goulet <dgoulet@efficios.com>
Use the consumer stream API in consumer_del_stream()

Signed-off-by: David Goulet <dgoulet@efficios.com>
[HEAD MERGE] Snapshot API

Every call has been coded in liblttng-ctl. Nothing on the session daemon
side yet apart from adding the case to the process client command
subsystem.

!!Need comments!! before mergin that commit.

Signed-off-by: David Goulet <dgoulet@efficios.com>
[HEAD MERGE] Add snapshot command to lttng UI

Signed-off-by: David Goulet <dgoulet@efficios.com>
[HEAD MERGE] Snapshot commands in sessiond

Signed-off-by: David Goulet <dgoulet@efficios.com>
[MERGE] lttng snapshot command fails if session is not in no output mode

Signed-off-by: David Goulet <dgoulet@efficios.com>
[HEAD MERGE] Flight recorder feature

Signed-off-by: David Goulet <dgoulet@efficios.com>
[HEAD MERGE] Kernel snapshot support

**ADD CHANGELOG**

Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
[MERGE] add kernel consumer destroy channel. NOT COMPLETED

Signed-off-by: David Goulet <dgoulet@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
[MERGE] free stream in the no monitor list on del channel

Signed-off-by: David Goulet <dgoulet@efficios.com>
[MERGE] Some fixes. Veille technologique (RLNX inside)

Signed-off-by: David Goulet <dgoulet@efficios.com>