From 09ede842515f606976233d5cc538fc47a60abc09 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=A9mie=20Galarneau?= Date: Fri, 14 Dec 2018 16:04:44 -0500 Subject: [PATCH] Transmit sessiond uuid to consumerd on launch MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Jérémie Galarneau --- src/bin/lttng-sessiond/consumer.h | 2 ++ src/bin/lttng-sessiond/manage-consumer.c | 14 ++++++++++++-- src/common/consumer/consumer.c | 3 +++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/bin/lttng-sessiond/consumer.h b/src/bin/lttng-sessiond/consumer.h index 7277c405e..caa076c89 100644 --- a/src/bin/lttng-sessiond/consumer.h +++ b/src/bin/lttng-sessiond/consumer.h @@ -314,5 +314,7 @@ int consumer_check_rotation_pending_relay(struct consumer_socket *socket, int consumer_mkdir(struct consumer_socket *socket, uint64_t session_id, const struct consumer_output *output, const char *path, uid_t uid, gid_t gid); +int consumer_init(struct consumer_socket *socket, + const lttng_uuid sessiond_uuid); #endif /* _CONSUMER_H */ diff --git a/src/bin/lttng-sessiond/manage-consumer.c b/src/bin/lttng-sessiond/manage-consumer.c index fa802adc9..c87a43f6e 100644 --- a/src/bin/lttng-sessiond/manage-consumer.c +++ b/src/bin/lttng-sessiond/manage-consumer.c @@ -242,8 +242,8 @@ void *thread_consumer_management(void *data) health_code_update(); /* - * Transfer the write-end of the channel monitoring and rotate pipe - * to the consumer by issuing a SET_CHANNEL_MONITOR_PIPE command. + * Transfer the write-end of the channel monitoring pipe to the consumer + * by issuing a SET_CHANNEL_MONITOR_PIPE command. */ cmd_socket_wrapper = consumer_allocate_socket(&consumer_data->cmd_sock); if (!cmd_socket_wrapper) { @@ -252,6 +252,16 @@ void *thread_consumer_management(void *data) } cmd_socket_wrapper->lock = &consumer_data->lock; + pthread_mutex_lock(cmd_socket_wrapper->lock); + ret = consumer_init(cmd_socket_wrapper, sessiond_uuid); + if (ret) { + ERR("Failed to send sessiond uuid to consumer daemon"); + mark_thread_intialization_as_failed(notifiers); + pthread_mutex_unlock(cmd_socket_wrapper->lock); + goto error; + } + pthread_mutex_unlock(cmd_socket_wrapper->lock); + ret = consumer_send_channel_monitor_pipe(cmd_socket_wrapper, consumer_data->channel_monitor_pipe); if (ret) { diff --git a/src/common/consumer/consumer.c b/src/common/consumer/consumer.c index 32a2d7a4a..3c20c57bd 100644 --- a/src/common/consumer/consumer.c +++ b/src/common/consumer/consumer.c @@ -4491,6 +4491,7 @@ enum lttcomm_return_code lttng_consumer_init_command( const lttng_uuid sessiond_uuid) { enum lttcomm_return_code ret; + char uuid_str[UUID_STR_LEN]; if (ctx->sessiond_uuid.is_set) { ret = LTTCOMM_CONSUMERD_ALREADY_SET; @@ -4500,6 +4501,8 @@ enum lttcomm_return_code lttng_consumer_init_command( ctx->sessiond_uuid.is_set = true; memcpy(ctx->sessiond_uuid.value, sessiond_uuid, sizeof(lttng_uuid)); ret = LTTCOMM_CONSUMERD_SUCCESS; + lttng_uuid_to_str(sessiond_uuid, uuid_str); + DBG("Received session daemon UUID: %s", uuid_str); end: return ret; } -- 2.34.1