sessiond: snapshot: set trace chunk to NULL before closing it
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Thu, 12 Dec 2019 17:58:03 +0000 (12:58 -0500)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Thu, 19 Dec 2019 23:40:19 +0000 (18:40 -0500)
Operations are expected to happen in this order with the reworked
trace chunk for clear feature.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I3d655714c4b40b8563abdadb8cb74067eb7e4b6e
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
src/bin/lttng-sessiond/cmd.c

index db07082dbc4e0e50620d4b38d9bf27c97ac8b787..53850f74aae784b97a668f30c429c92cca8858be 100644 (file)
@@ -4713,7 +4713,13 @@ enum lttng_error_code snapshot_record(struct ltt_session *session,
                }
        }
 
                }
        }
 
-       if (session_close_trace_chunk(session, session->current_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);
+               ret_code = LTTNG_ERR_UNK;
+       }
+
+       if (session_close_trace_chunk(session, snapshot_trace_chunk,
                        LTTNG_TRACE_CHUNK_COMMAND_TYPE_NO_OPERATION, NULL)) {
                /*
                 * Don't goto end; make sure the chunk is closed for the session
                        LTTNG_TRACE_CHUNK_COMMAND_TYPE_NO_OPERATION, NULL)) {
                /*
                 * Don't goto end; make sure the chunk is closed for the session
@@ -4723,11 +4729,6 @@ enum lttng_error_code snapshot_record(struct ltt_session *session,
                                session->name);
                ret_code = LTTNG_ERR_CLOSE_TRACE_CHUNK_FAIL_CONSUMER;
        }
                                session->name);
                ret_code = LTTNG_ERR_CLOSE_TRACE_CHUNK_FAIL_CONSUMER;
        }
-       if (session_set_trace_chunk(session, NULL, NULL)) {
-               ERR("Failed to release the current trace chunk of session \"%s\"",
-                               session->name);
-               ret_code = LTTNG_ERR_UNK;
-       }
 error:
        if (original_ust_consumer_output) {
                session->ust_session->consumer = original_ust_consumer_output;
 error:
        if (original_ust_consumer_output) {
                session->ust_session->consumer = original_ust_consumer_output;
This page took 0.027089 seconds and 4 git commands to generate.