Fix: hold consumer socket lock for consumer_send_msg
authorJonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Tue, 10 Apr 2018 17:56:47 +0000 (13:56 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Tue, 10 Apr 2018 18:01:20 +0000 (14:01 -0400)
The lock is held and released during the recv() section, but not
during the send section for a failure to lookup the PID registry.

Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
src/bin/lttng-sessiond/ust-consumer.c

index d8d6c329f5d3334555f05e0418a699c46cec6dce..b9865a0f015b76e0abb5ebcedfd8b92238b47465 100644 (file)
@@ -513,7 +513,9 @@ int ust_consumer_metadata_request(struct consumer_socket *socket)
 
                        memset(&msg, 0, sizeof(msg));
                        msg.cmd_type = LTTNG_ERR_UND;
+                       pthread_mutex_lock(socket->lock);
                        (void) consumer_send_msg(socket, &msg);
+                       pthread_mutex_unlock(socket->lock);
                        /*
                         * This is possible since the session might have been destroyed
                         * during a consumer metadata request. So here, return gracefully
This page took 0.027119 seconds and 5 git commands to generate.