Teardown relayd on communication error during data pending
authorJonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Wed, 29 Aug 2018 01:19:53 +0000 (21:19 -0400)
committerJonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Fri, 21 Sep 2018 08:48:49 +0000 (04:48 -0400)
Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
src/common/consumer/consumer.c

index 482d4a63bd00a98c75ecb681390e4c211f69b62b..292bd393874a85c1bffdb3800f54398cb31fdd0d 100644 (file)
@@ -3638,8 +3638,8 @@ int consumer_data_pending(uint64_t id)
                ret = relayd_begin_data_pending(&relayd->control_sock,
                                relayd->relayd_session_id);
                if (ret < 0) {
-                       pthread_mutex_unlock(&relayd->ctrl_sock_mutex);
                        /* Communication error thus the relayd so no data pending. */
+                       pthread_mutex_unlock(&relayd->ctrl_sock_mutex);
                        ERR("Relayd begin data pending failed. Cleaning up relayd %" PRIu64".", relayd->net_seq_idx);
                        lttng_consumer_cleanup_relayd(relayd);
                        goto data_not_pending;
@@ -3663,6 +3663,8 @@ int consumer_data_pending(uint64_t id)
                                goto data_pending;
                        }
                        if (ret < 0) {
+                               ERR("Relayd data pending failed. Cleaning up relayd %" PRIu64".", relayd->net_seq_idx);
+                               lttng_consumer_cleanup_relayd(relayd);
                                pthread_mutex_unlock(&relayd->ctrl_sock_mutex);
                                pthread_mutex_unlock(&stream->lock);
                                goto data_not_pending;
This page took 0.028544 seconds and 5 git commands to generate.