X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fust-consumer.c;h=ee54e79850560d6f4866c177716aeddae3b542df;hb=e71aad1fa4b06a5f91ddceace42366f3d79bd77e;hp=63381cea4df702a4bf998702fdbead9429fd8275;hpb=990570edd474b304d4c935d82be6201d872025e4;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/ust-consumer.c b/src/bin/lttng-sessiond/ust-consumer.c index 63381cea4..ee54e7985 100644 --- a/src/bin/lttng-sessiond/ust-consumer.c +++ b/src/bin/lttng-sessiond/ust-consumer.c @@ -22,11 +22,10 @@ #include #include -#include #include +#include #include #include -#include #include "ust-consumer.h" @@ -59,13 +58,13 @@ static int send_channel_streams(int sock, DBG("Sending channel %d to consumer", lum.u.channel.channel_key); ret = lttcomm_send_unix_sock(sock, &lum, sizeof(lum)); if (ret < 0) { - perror("send consumer channel"); + PERROR("send consumer channel"); goto error; } fd = uchan->obj->shm_fd; ret = lttcomm_send_fds_unix_sock(sock, &fd, 1); if (ret < 0) { - perror("send consumer channel ancillary data"); + PERROR("send consumer channel ancillary data"); goto error; } @@ -92,7 +91,7 @@ static int send_channel_streams(int sock, DBG("Sending stream %d to consumer", lum.u.stream.stream_key); ret = lttcomm_send_unix_sock(sock, &lum, sizeof(lum)); if (ret < 0) { - perror("send consumer stream"); + PERROR("send consumer stream"); goto error; } @@ -100,7 +99,7 @@ static int send_channel_streams(int sock, fds[1] = stream->obj->wait_fd; ret = lttcomm_send_fds_unix_sock(sock, fds, 2); if (ret < 0) { - perror("send consumer stream ancillary data"); + PERROR("send consumer stream ancillary data"); goto error; } } @@ -143,13 +142,13 @@ int ust_consumer_send_session(int consumer_fd, struct ust_app_session *usess) DBG("Sending metadata channel %d to consumer", lum.u.channel.channel_key); ret = lttcomm_send_unix_sock(sock, &lum, sizeof(lum)); if (ret < 0) { - perror("send consumer channel"); + PERROR("send consumer channel"); goto error; } fd = usess->metadata->obj->shm_fd; ret = lttcomm_send_fds_unix_sock(sock, &fd, 1); if (ret < 0) { - perror("send consumer metadata channel"); + PERROR("send consumer metadata channel"); goto error; } @@ -167,14 +166,14 @@ int ust_consumer_send_session(int consumer_fd, struct ust_app_session *usess) DBG("Sending metadata stream %d to consumer", lum.u.stream.stream_key); ret = lttcomm_send_unix_sock(sock, &lum, sizeof(lum)); if (ret < 0) { - perror("send consumer metadata stream"); + PERROR("send consumer metadata stream"); goto error; } fds[0] = usess->metadata->stream_obj->shm_fd; fds[1] = usess->metadata->stream_obj->wait_fd; ret = lttcomm_send_fds_unix_sock(sock, fds, 2); if (ret < 0) { - perror("send consumer stream"); + PERROR("send consumer stream"); goto error; } } @@ -183,6 +182,14 @@ int ust_consumer_send_session(int consumer_fd, struct ust_app_session *usess) rcu_read_lock(); cds_lfht_for_each_entry(usess->channels->ht, &iter.iter, ua_chan, node.node) { + /* + * Indicate that the channel was not created on the tracer side so skip + * sending unexisting streams. + */ + if (ua_chan->obj == NULL) { + continue; + } + ret = send_channel_streams(sock, ua_chan, usess->uid, usess->gid); if (ret < 0) { rcu_read_unlock();