From: Jérémie Galarneau Date: Thu, 2 Apr 2020 04:25:11 +0000 (-0400) Subject: Fix: sessiond: error reported on session destruction for old modules X-Git-Tag: v2.13.0-rc1~693 X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=commitdiff_plain;h=53fb6336415e5f19b6e8c4baeb0d0555ed5d6e66;ds=sidebyside Fix: sessiond: error reported on session destruction for old modules The session destruction command will return -LTTNG_ERR_ROTATION_NOT_AVAILABLE_KERNEL when the kernel tracer version does not support packet sequence numbers which prevents rotations from being performed. It is okay to not perform an implicit rotation in this case since we know that no rotations have occurred during the session's lifetime (as it is not supported). Thus, the client/library only needs to stop the session, wait for pending data, and destroy the session. Signed-off-by: Jérémie Galarneau Change-Id: Ibccf73f08eecb6431ea3cc358bf8dd6af3ba4427 --- diff --git a/src/bin/lttng-sessiond/cmd.c b/src/bin/lttng-sessiond/cmd.c index 2bd010f89..e45d4423a 100644 --- a/src/bin/lttng-sessiond/cmd.c +++ b/src/bin/lttng-sessiond/cmd.c @@ -3402,9 +3402,17 @@ int cmd_destroy_session(struct ltt_session *session, */ ret = cmd_rotate_session(session, NULL, true, LTTNG_TRACE_CHUNK_COMMAND_TYPE_NO_OPERATION); - if (ret != LTTNG_OK) { + /* + * Rotation operations may not be supported by the kernel + * tracer. Hence, do not consider this implicit rotation as + * a session destruction error. The library has already stopped + * the session and waited for pending data; there is nothing + * left to do but complete the destruction of the session. + */ + if (ret != LTTNG_OK && + ret != -LTTNG_ERR_ROTATION_NOT_AVAILABLE_KERNEL) { ERR("Failed to perform a quiet rotation as part of the destruction of session \"%s\": %s", - session->name, lttng_strerror(-ret)); + session->name, lttng_strerror(ret)); destruction_last_error = -ret; } }