Fix: skip metadata flushed check if write failed
[lttng-tools.git] / src / common / ust-consumer / ust-consumer.c
index 6acaacd63c942d1092ad9cdc056713f28a704462..f7ffb0febf5b7bcdc338b30975ae7e3379724935 100644 (file)
@@ -751,6 +751,14 @@ int lttng_ustconsumer_recv_metadata(int sock, uint64_t key, uint64_t offset,
        if (ret < 0) {
                /* Unable to handle metadata. Notify session daemon. */
                ret_code = LTTCOMM_CONSUMERD_ERROR_METADATA;
+               /*
+                * Skip metadata flush on write error since the offset and len might
+                * not have been updated which could create an infinite loop below when
+                * waiting for the metadata cache to be flushed.
+                */
+               pthread_mutex_unlock(&channel->metadata_cache->lock);
+               pthread_mutex_unlock(&consumer_data.lock);
+               goto end_free;
        }
        pthread_mutex_unlock(&channel->metadata_cache->lock);
        pthread_mutex_unlock(&consumer_data.lock);
This page took 0.023921 seconds and 4 git commands to generate.