From 0e9a3855dc56ee60cfcac93ab2e51fbb6916687d Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=A9mie=20Galarneau?= Date: Tue, 3 Apr 2018 10:14:17 -0400 Subject: [PATCH] Fix: rotation state marked as completed before relayd has completed MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The session rotation state is updated to COMPLETED before the relay daemon has signaled that its rotation has been completed. This causes users using the "rotation get_info" API to receive this status before the session archive is readable on the relay daemon's end. Signed-off-by: Jérémie Galarneau --- src/bin/lttng-sessiond/rotation-thread.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/bin/lttng-sessiond/rotation-thread.c b/src/bin/lttng-sessiond/rotation-thread.c index 9f15ed06e..b0869903e 100644 --- a/src/bin/lttng-sessiond/rotation-thread.c +++ b/src/bin/lttng-sessiond/rotation-thread.c @@ -395,7 +395,6 @@ int handle_channel_rotation_pipe(int fd, uint32_t revents, goto end_unlock_session; } session->rotate_pending = false; - session->rotation_state = LTTNG_ROTATION_STATE_COMPLETED; session->last_chunk_start_ts = session->current_chunk_start_ts; if (session->rotate_pending_relay) { ret = sessiond_timer_rotate_pending_start( @@ -406,6 +405,8 @@ int handle_channel_rotation_pipe(int fd, uint32_t revents, ret = -1; goto end_unlock_session; } + } else { + session->rotation_state = LTTNG_ROTATION_STATE_COMPLETED; } DBG("Rotation completed for session %s", session->name); } @@ -445,6 +446,7 @@ int rotate_pending_relay_timer(struct ltt_session *session) * rotations can start now. */ session->rotate_pending_relay = false; + session->rotation_state = LTTNG_ROTATION_STATE_COMPLETED; } else if (ret == 1) { DBG("[rotation-thread] Rotation still pending on the relay for " "session %" PRIu64, session->id); -- 2.34.1