X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fcommon%2Fkernel-consumer%2Fkernel-consumer.c;h=f1c38ccbfa8c6ec5f18ca64fbe6d58dbb4442dbf;hp=66ae16bc8f09c224ffd3e1130bf9c1fa0ca0fa13;hb=19990ed538f86bf0f32193a378c3faf36ce4f467;hpb=4bd5b4af0f6c1f1ebc3a85696d0a09a7d24ad59c diff --git a/src/common/kernel-consumer/kernel-consumer.c b/src/common/kernel-consumer/kernel-consumer.c index 66ae16bc8..f1c38ccbf 100644 --- 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: { + int pending; 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); - if (ret < 0) { + if (pending < 0) { ERR("Rotate pending relay failed"); ret_code = LTTCOMM_CONSUMERD_CHAN_NOT_FOUND; } else { - pending_reply = !!ret; + pending_reply = !!pending; } health_code_update(); @@ -1206,6 +1207,15 @@ int lttng_kconsumer_recv_cmd(struct lttng_consumer_local_data *ctx, 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));