projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix: keep ust/kernel session items around for destroy notifier
[lttng-tools.git]
/
src
/
bin
/
lttng-sessiond
/
session.c
diff --git
a/src/bin/lttng-sessiond/session.c
b/src/bin/lttng-sessiond/session.c
index 6e187f2ff51df9c17fb162f0096e7e6a92d7a372..514b11e9919da0c2814aa99096c4bcd99862d892 100644
(file)
--- a/
src/bin/lttng-sessiond/session.c
+++ b/
src/bin/lttng-sessiond/session.c
@@
-802,11
+802,10
@@
void session_release(struct urcu_ref *ref)
usess = session->ust_session;
ksess = session->kernel_session;
usess = session->ust_session;
ksess = session->kernel_session;
- /* Clean kernel session teardown */
+ /* Clean kernel session teardown
, keeping data for destroy notifier.
*/
kernel_destroy_session(ksess);
kernel_destroy_session(ksess);
- session->kernel_session = NULL;
- /* UST session teardown */
+ /* UST session teardown
, keeping data for destroy notifier.
*/
if (usess) {
/* Close any relayd session */
consumer_output_send_destroy_relayd(usess->consumer);
if (usess) {
/* Close any relayd session */
consumer_output_send_destroy_relayd(usess->consumer);
@@
-817,9
+816,8
@@
void session_release(struct urcu_ref *ref)
ERR("Error in ust_app_destroy_trace_all");
}
ERR("Error in ust_app_destroy_trace_all");
}
- /* Clean up the rest. */
+ /* Clean up the rest
, keeping destroy notifier data
. */
trace_ust_destroy_session(usess);
trace_ust_destroy_session(usess);
- session->ust_session = NULL;
}
/*
}
/*
@@
-844,6
+842,13
@@
void session_release(struct urcu_ref *ref)
del_session_ht(session);
}
session_notify_destruction(session);
del_session_ht(session);
}
session_notify_destruction(session);
+
+ kernel_free_session(ksess);
+ session->kernel_session = NULL;
+ if (usess) {
+ trace_ust_free_session(usess);
+ session->ust_session = NULL;
+ }
lttng_dynamic_array_reset(&session->destroy_notifiers);
free(session->last_archived_chunk_name);
free(session);
lttng_dynamic_array_reset(&session->destroy_notifiers);
free(session->last_archived_chunk_name);
free(session);
This page took
0.025681 seconds
and
4
git commands to generate.