projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix: consumers don't honor protocol on rotate pending relay command
[lttng-tools.git]
/
src
/
common
/
kernel-consumer
/
kernel-consumer.c
diff --git
a/src/common/kernel-consumer/kernel-consumer.c
b/src/common/kernel-consumer/kernel-consumer.c
index 66ae16bc8f09c224ffd3e1130bf9c1fa0ca0fa13..f1c38ccbfa8c6ec5f18ca64fbe6d58dbb4442dbf 100644
(file)
--- a/
src/common/kernel-consumer/kernel-consumer.c
+++ b/
src/common/kernel-consumer/kernel-consumer.c
@@
-1183,19
+1183,20
@@
int lttng_kconsumer_recv_cmd(struct lttng_consumer_local_data *ctx,
}
case LTTNG_CONSUMER_ROTATE_PENDING_RELAY:
{
}
case LTTNG_CONSUMER_ROTATE_PENDING_RELAY:
{
+ int pending;
uint32_t pending_reply;
DBG("Consumer rotate pending on relay for session %" PRIu64,
msg.u.rotate_pending_relay.session_id);
uint32_t pending_reply;
DBG("Consumer rotate pending on relay for session %" PRIu64,
msg.u.rotate_pending_relay.session_id);
-
ret
= lttng_consumer_rotate_pending_relay(
+
pending
= lttng_consumer_rotate_pending_relay(
msg.u.rotate_pending_relay.session_id,
msg.u.rotate_pending_relay.relayd_id,
msg.u.rotate_pending_relay.chunk_id);
msg.u.rotate_pending_relay.session_id,
msg.u.rotate_pending_relay.relayd_id,
msg.u.rotate_pending_relay.chunk_id);
- if (
ret
< 0) {
+ if (
pending
< 0) {
ERR("Rotate pending relay failed");
ret_code = LTTCOMM_CONSUMERD_CHAN_NOT_FOUND;
} else {
ERR("Rotate pending relay failed");
ret_code = LTTCOMM_CONSUMERD_CHAN_NOT_FOUND;
} else {
- pending_reply = !!
ret
;
+ pending_reply = !!
pending
;
}
health_code_update();
}
health_code_update();
@@
-1206,6
+1207,15
@@
int lttng_kconsumer_recv_cmd(struct lttng_consumer_local_data *ctx,
goto end_nosignal;
}
goto end_nosignal;
}
+ if (pending < 0) {
+ /*
+ * An error occured while running the command;
+ * don't send the 'pending' flag as the sessiond
+ * will not read it.
+ */
+ break;
+ }
+
/* Send back returned value to session daemon */
ret = lttcomm_send_unix_sock(sock, &pending_reply,
sizeof(pending_reply));
/* Send back returned value to session daemon */
ret = lttcomm_send_unix_sock(sock, &pending_reply,
sizeof(pending_reply));
This page took
0.025948 seconds
and
5
git commands to generate.