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:08:10 +0000 (14:08 -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 3bb54f03983178f035fdcb345f8e1d7670557847..11318dbf1242b16837af564ac5e0acacb7f72cac 100644 (file)
@@ -496,7 +496,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.030731 seconds and 4 git commands to generate.