Fix: sessiond: snapshot errors don't clear session's trace chunk
[lttng-tools.git] / src / bin / lttng-sessiond / cmd.c
index 139133210406882cf8e3359287a892bb228c9c5b..5e522d6fe0886108b87df756e930a6519a5a8a09 100644 (file)
@@ -4687,7 +4687,7 @@ enum lttng_error_code snapshot_record(struct ltt_session *session,
                        snapshot_output->max_size);
        if (nb_packets_per_stream < 0) {
                ret_code = LTTNG_ERR_MAX_SIZE_INVALID;
-               goto error;
+               goto error_close_trace_chunk;
        }
 
        if (session->kernel_session) {
@@ -4695,7 +4695,7 @@ enum lttng_error_code snapshot_record(struct ltt_session *session,
                                snapshot_kernel_consumer_output, session,
                                wait, nb_packets_per_stream);
                if (ret_code != LTTNG_OK) {
-                       goto error;
+                       goto error_close_trace_chunk;
                }
        }
 
@@ -4704,10 +4704,11 @@ enum lttng_error_code snapshot_record(struct ltt_session *session,
                                snapshot_ust_consumer_output, session,
                                wait, nb_packets_per_stream);
                if (ret_code != LTTNG_OK) {
-                       goto error;
+                       goto error_close_trace_chunk;
                }
        }
 
+error_close_trace_chunk:
        if (session_set_trace_chunk(session, NULL, &snapshot_trace_chunk)) {
                ERR("Failed to release the current trace chunk of session \"%s\"",
                                session->name);
This page took 0.024516 seconds and 5 git commands to generate.