X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Frotation-thread.cpp;h=2f89fbc64ee875f8e94f5efc78b34e6a57648575;hb=c9e313bc594f40a86eed237dce222c0fc99c957f;hp=8754d48a1d2eeb519d2273cba67332c01bf50f31;hpb=7966af5763c4aaca39df9bbfa9277ff15715c720;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/rotation-thread.cpp b/src/bin/lttng-sessiond/rotation-thread.cpp index 8754d48a1..2f89fbc64 100644 --- a/src/bin/lttng-sessiond/rotation-thread.cpp +++ b/src/bin/lttng-sessiond/rotation-thread.cpp @@ -8,34 +8,35 @@ #define _LGPL_SOURCE #include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include #include -#include -#include -#include -#include - -#include "rotation-thread.h" -#include "lttng-sessiond.h" -#include "health-sessiond.h" -#include "rotate.h" -#include "cmd.h" -#include "session.h" -#include "timer.h" -#include "notification-thread-commands.h" -#include "utils.h" -#include "thread.h" +#include +#include +#include +#include +#include + +#include "rotation-thread.hpp" +#include "lttng-sessiond.hpp" +#include "health-sessiond.hpp" +#include "rotate.hpp" +#include "cmd.hpp" +#include "session.hpp" +#include "timer.hpp" +#include "notification-thread-commands.hpp" +#include "utils.hpp" +#include "thread.hpp" #include #include @@ -214,7 +215,10 @@ void rotation_thread_enqueue_job(struct rotation_thread_timer_queue *queue, * the job will be processed when the rotation_thread catches * up. */ + DIAGNOSTIC_PUSH + DIAGNOSTIC_IGNORE_LOGICAL_OP if (errno == EAGAIN || errno == EWOULDBLOCK) { + DIAGNOSTIC_POP /* * Not an error, but would be surprising and indicate * that the rotation thread can't keep up with the @@ -560,7 +564,7 @@ int run_job(struct rotation_thread_job *job, struct ltt_session *session, static int handle_job_queue(struct rotation_thread_handle *handle, - struct rotation_thread *state, + struct rotation_thread *state __attribute__((unused)), struct rotation_thread_timer_queue *queue) { int ret = 0; @@ -584,7 +588,7 @@ int handle_job_queue(struct rotation_thread_handle *handle, session = job->session; if (!session) { DBG("Session \"%s\" not found", - session->name); + session->name != NULL ? session->name : ""); /* * This is a non-fatal error, and we cannot report it to * the user (timer), so just print the error and @@ -659,10 +663,15 @@ int handle_condition(const struct lttng_condition *condition, session_lock_list(); session = session_find_by_name(condition_session_name); if (!session) { - ret = -1; - session_unlock_list(); - ERR("Session \"%s\" not found", + DBG("Failed to find session while handling notification: notification type = %s, session name = `%s`", + lttng_condition_type_str(condition_type), condition_session_name); + /* + * Not a fatal error: a session can be destroyed before we get + * the chance to handle the notification. + */ + ret = 0; + session_unlock_list(); goto end; } session_lock(session); @@ -701,9 +710,9 @@ end: } static -int handle_notification_channel(int fd, +int handle_notification_channel(int fd __attribute__((unused)), struct rotation_thread_handle *handle, - struct rotation_thread *state) + struct rotation_thread *state __attribute__((unused))) { int ret; bool notification_pending;