Fix: trace_archive_id is not sent in add_stream command
authorJérémie Galarneau <jeremie.galarneau@efficios.com>
Mon, 12 Nov 2018 22:48:53 +0000 (17:48 -0500)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Mon, 12 Nov 2018 22:57:43 +0000 (17:57 -0500)
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 <jeremie.galarneau@efficios.com>
src/common/relayd/relayd.c

index 745bde816aa7471222f871c3859d981389e22638..78ed85558c8cf24cc1048924ce4db794e0dfeef9 100644 (file)
@@ -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) {
This page took 0.034013 seconds and 4 git commands to generate.