projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix: rotation: hang on destroy when using scheduled rotation based on timer
[lttng-tools.git]
/
src
/
bin
/
lttng-sessiond
/
cmd.c
diff --git
a/src/bin/lttng-sessiond/cmd.c
b/src/bin/lttng-sessiond/cmd.c
index cf6764d6171b51446ffa62dec330bd386013500a..361ef6dc8206d79b8b810e7143b52c3faea9008a 100644
(file)
--- a/
src/bin/lttng-sessiond/cmd.c
+++ b/
src/bin/lttng-sessiond/cmd.c
@@
-2819,7
+2819,7
@@
int cmd_start_trace(struct ltt_session *session)
*/
session->rotated_after_last_stop = false;
*/
session->rotated_after_last_stop = false;
- if (session->rotate_timer_period) {
+ if (session->rotate_timer_period
&& !session->rotation_schedule_timer_enabled
) {
int int_ret = timer_session_rotation_schedule_timer_start(
session, session->rotate_timer_period);
int int_ret = timer_session_rotation_schedule_timer_start(
session, session->rotate_timer_period);
@@
-3766,8
+3766,8
@@
enum lttng_error_code cmd_list_channels(enum lttng_domain_type domain,
channel = trace_ust_channel_to_lttng_channel(uchan);
if (!channel) {
channel = trace_ust_channel_to_lttng_channel(uchan);
if (!channel) {
- ret = LTTNG_ERR_NOMEM;
-
break
;
+ ret
_code
= LTTNG_ERR_NOMEM;
+
goto end
;
}
extended = (struct lttng_channel_extended *)
}
extended = (struct lttng_channel_extended *)
@@
-3778,7
+3778,7
@@
enum lttng_error_code cmd_list_channels(enum lttng_domain_type domain,
if (ret < 0) {
lttng_channel_destroy(channel);
ret_code = LTTNG_ERR_UNK;
if (ret < 0) {
lttng_channel_destroy(channel);
ret_code = LTTNG_ERR_UNK;
-
break
;
+
goto end
;
}
extended->discarded_events = discarded_events;
}
extended->discarded_events = discarded_events;
@@
-3789,11
+3789,12
@@
enum lttng_error_code cmd_list_channels(enum lttng_domain_type domain,
if (ret) {
ERR("Failed to serialize lttng_channel: channel name = '%s'",
channel->name);
if (ret) {
ERR("Failed to serialize lttng_channel: channel name = '%s'",
channel->name);
+ lttng_channel_destroy(channel);
ret_code = LTTNG_ERR_UNK;
ret_code = LTTNG_ERR_UNK;
- ret = -1;
- break;
+ goto end;
}
}
+ lttng_channel_destroy(channel);
i++;
}
rcu_read_unlock();
i++;
}
rcu_read_unlock();
This page took
0.035537 seconds
and
4
git commands to generate.