From: Jérémie Galarneau Date: Mon, 12 Nov 2018 22:48:53 +0000 (-0500) Subject: Fix: trace_archive_id is not sent in add_stream command X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=commitdiff_plain;h=b00e554eef4eec08eea1f245b82cf737db9547e6;ds=sidebyside Fix: trace_archive_id is not sent in add_stream command The trace_archive_id argument of relayd_add_stream() is not forwarded to the "2.11" implementation of the command. This means that all streams on the relayd are created in the "chunk_id == 0" EPOCH. This may cause remote rotations to never complete when a stream is created while a rotation is ongoing. In such a case, the stream's chunk_id would be 0, but it would not have a rotation sequence number. This would cause the rotation completion check to always return that the rotation is "ongoing". Signed-off-by: Jérémie Galarneau --- diff --git a/src/common/relayd/relayd.c b/src/common/relayd/relayd.c index 745bde816..78ed85558 100644 --- a/src/common/relayd/relayd.c +++ b/src/common/relayd/relayd.c @@ -349,7 +349,8 @@ error: static int relayd_add_stream_2_11(struct lttcomm_relayd_sock *rsock, const char *channel_name, const char *pathname, - uint64_t tracefile_size, uint64_t tracefile_count) + uint64_t tracefile_size, uint64_t tracefile_count, + uint64_t trace_archive_id) { int ret; struct lttcomm_relayd_add_stream_2_11 *msg = NULL; @@ -386,6 +387,7 @@ static int relayd_add_stream_2_11(struct lttcomm_relayd_sock *rsock, msg->tracefile_size = htobe64(tracefile_size); msg->tracefile_count = htobe64(tracefile_count); + msg->trace_archive_id = htobe64(trace_archive_id); /* Send command */ ret = send_command(rsock, RELAYD_ADD_STREAM, (void *) msg, msg_length, 0); @@ -430,7 +432,8 @@ int relayd_add_stream(struct lttcomm_relayd_sock *rsock, const char *channel_nam } else { /* From 2.11 to ...*/ ret = relayd_add_stream_2_11(rsock, channel_name, pathname, - tracefile_size, tracefile_count); + tracefile_size, tracefile_count, + trace_archive_id); } if (ret) {