From: Jérémie Galarneau Date: Tue, 3 Apr 2018 14:14:17 +0000 (-0400) Subject: Fix: rotation state marked as completed before relayd has completed X-Git-Tag: v2.11.0-rc1~311 X-Git-Url: https://git.lttng.org./?a=commitdiff_plain;h=0e9a3855dc56ee60cfcac93ab2e51fbb6916687d;p=lttng-tools.git Fix: rotation state marked as completed before relayd has completed 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 --- 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);