Cleanup: Reduce scope of connections in main relayd thread
[lttng-tools.git] / src / bin / lttng-sessiond / ust-consumer.c
index b0a52b33ad49ca196d62326330e70750b7028190..611b54dcdb17d392f14bd42dc98320a0cb098b61 100644 (file)
@@ -16,6 +16,7 @@
  */
 
 #define _GNU_SOURCE
+#define _LGPL_SOURCE
 #include <errno.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -250,6 +251,7 @@ int ust_consumer_get_channel(struct consumer_socket *socket,
        assert(ua_chan);
        assert(socket);
 
+       memset(&msg, 0, sizeof(msg));
        msg.cmd_type = LTTNG_CONSUMER_GET_CHANNEL;
        msg.u.get_channel.key = ua_chan->key;
 
@@ -307,7 +309,7 @@ int ust_consumer_get_channel(struct consumer_socket *socket,
                cds_list_add_tail(&stream->list, &ua_chan->streams.head);
                ua_chan->streams.count++;
 
-               DBG2("UST app stream %d received succesfully", ua_chan->streams.count);
+               DBG2("UST app stream %d received successfully", ua_chan->streams.count);
        }
 
        /* This MUST match or else we have a synchronization problem. */
@@ -344,6 +346,7 @@ int ust_consumer_destroy_channel(struct consumer_socket *socket,
        assert(ua_chan);
        assert(socket);
 
+       memset(&msg, 0, sizeof(msg));
        msg.cmd_type = LTTNG_CONSUMER_DESTROY_CHANNEL;
        msg.u.destroy_channel.key = ua_chan->key;
 
@@ -381,8 +384,8 @@ int ust_consumer_send_stream_to_ust(struct ust_app *app,
        ret = ustctl_send_stream_to_ust(app->sock, channel->obj, stream->obj);
        if (ret < 0) {
                if (ret != -EPIPE && ret != -LTTNG_UST_ERR_EXITING) {
-                       ERR("Error ustctl send stream %s to app pid: %d with ret %d",
-                                       stream->name, app->pid, ret);
+                       ERR("ustctl send stream handle %d to app pid: %d with ret %d",
+                                       stream->obj->handle, app->pid, ret);
                } else {
                        DBG3("UST app send stream to ust failed. Application is dead.");
                }
@@ -445,12 +448,12 @@ int ust_consumer_metadata_request(struct consumer_socket *socket)
        assert(socket);
 
        rcu_read_lock();
-       pthread_mutex_lock(socket->lock);
-
        health_code_update();
 
        /* Wait for a metadata request */
+       pthread_mutex_lock(socket->lock);
        ret = consumer_socket_recv(socket, &request, sizeof(request));
+       pthread_mutex_unlock(socket->lock);
        if (ret < 0) {
                goto end;
        }
@@ -469,6 +472,7 @@ int ust_consumer_metadata_request(struct consumer_socket *socket)
                        DBG("PID registry not found for session id %" PRIu64,
                                        request.session_id_per_pid);
 
+                       memset(&msg, 0, sizeof(msg));
                        msg.cmd_type = LTTNG_ERR_UND;
                        (void) consumer_send_msg(socket, &msg);
                        /*
@@ -484,7 +488,9 @@ int ust_consumer_metadata_request(struct consumer_socket *socket)
        }
        assert(ust_reg);
 
+       pthread_mutex_lock(&ust_reg->lock);
        ret_push = ust_app_push_metadata(ust_reg, socket, 1);
+       pthread_mutex_unlock(&ust_reg->lock);
        if (ret_push < 0) {
                ERR("Pushing metadata");
                ret = -1;
@@ -494,7 +500,6 @@ int ust_consumer_metadata_request(struct consumer_socket *socket)
        ret = 0;
 
 end:
-       pthread_mutex_unlock(socket->lock);
        rcu_read_unlock();
        return ret;
 }
This page took 0.062682 seconds and 4 git commands to generate.