projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix: mark rotation pending check timer is never marked as disabled
[lttng-tools.git]
/
src
/
bin
/
lttng-sessiond
/
timer.c
diff --git
a/src/bin/lttng-sessiond/timer.c
b/src/bin/lttng-sessiond/timer.c
index 4bff7bd76cea0497c311f12b7026b0142761710c..d70d16710c91e7200f1a0c78f078e3d68a00c201 100644
(file)
--- a/
src/bin/lttng-sessiond/timer.c
+++ b/
src/bin/lttng-sessiond/timer.c
@@
-248,6
+248,7
@@
int timer_session_rotation_pending_check_stop(struct ltt_session *session)
int ret;
assert(session);
int ret;
assert(session);
+ assert(session->rotation_pending_check_timer_enabled);
DBG("Disabling session rotation pending check timer on session %" PRIu64,
session->id);
DBG("Disabling session rotation pending check timer on session %" PRIu64,
session->id);
@@
-387,11
+388,14
@@
void *timer_thread_func(void *data)
struct ltt_session *session =
(struct ltt_session *) info.si_value.sival_ptr;
struct ltt_session *session =
(struct ltt_session *) info.si_value.sival_ptr;
+ session_lock_list();
+ session_lock(session);
+ /* Acquires a reference to the session. */
rotation_thread_enqueue_job(ctx->rotation_thread_job_queue,
ROTATION_THREAD_JOB_TYPE_CHECK_PENDING_ROTATION,
session);
rotation_thread_enqueue_job(ctx->rotation_thread_job_queue,
ROTATION_THREAD_JOB_TYPE_CHECK_PENDING_ROTATION,
session);
- session_lock_list();
-
session_put
(session);
+ /* Release the timer's reference to the session. */
+
(void) timer_session_rotation_pending_check_stop
(session);
session_unlock_list();
} else if (signr == LTTNG_SESSIOND_SIG_SCHEDULED_ROTATION) {
rotation_thread_enqueue_job(ctx->rotation_thread_job_queue,
session_unlock_list();
} else if (signr == LTTNG_SESSIOND_SIG_SCHEDULED_ROTATION) {
rotation_thread_enqueue_job(ctx->rotation_thread_job_queue,
This page took
0.023844 seconds
and
4
git commands to generate.