Cleanup: wpipe already contain kernel_tracer_fd
[lttng-tools.git] / src / bin / lttng-sessiond / cmd.c
index a1eb961ee544331f961202ee2b69d36ffbe87868..6722341bb4b1be79f11a88b96c8989a3cf15e734 100644 (file)
@@ -55,6 +55,7 @@
 #include "rotate.h"
 #include "rotation-thread.h"
 #include "sessiond-timer.h"
+#include "agent-thread.h"
 
 #include "cmd.h"
 
@@ -917,8 +918,8 @@ error:
  *
  * The consumer socket lock must be held by the caller.
  */
-static int send_consumer_relayd_socket(enum lttng_domain_type domain,
-               unsigned int session_id, struct lttng_uri *relayd_uri,
+static int send_consumer_relayd_socket(unsigned int session_id,
+               struct lttng_uri *relayd_uri,
                struct consumer_output *consumer,
                struct consumer_socket *consumer_sock,
                char *session_name, char *hostname, int session_live_timer)
@@ -1003,7 +1004,7 @@ static int send_consumer_relayd_sockets(enum lttng_domain_type domain,
 
        /* Sending control relayd socket. */
        if (!sock->control_sock_sent) {
-               ret = send_consumer_relayd_socket(domain, session_id,
+               ret = send_consumer_relayd_socket(session_id,
                                &consumer->dst.net.control, consumer, sock,
                                session_name, hostname, session_live_timer);
                if (ret != LTTNG_OK) {
@@ -1013,7 +1014,7 @@ static int send_consumer_relayd_sockets(enum lttng_domain_type domain,
 
        /* Sending data relayd socket. */
        if (!sock->data_sock_sent) {
-               ret = send_consumer_relayd_socket(domain, session_id,
+               ret = send_consumer_relayd_socket(session_id,
                                &consumer->dst.net.data, consumer, sock,
                                session_name, hostname, session_live_timer);
                if (ret != LTTNG_OK) {
@@ -1152,7 +1153,7 @@ static int start_kernel_session(struct ltt_kernel_session *ksess, int wpipe)
        }
 
        /* Quiescent wait after starting trace */
-       kernel_wait_quiescent(kernel_tracer_fd);
+       kernel_wait_quiescent(wpipe);
 
        ksess->active = 1;
 
@@ -1384,9 +1385,15 @@ int cmd_enable_channel(struct ltt_session *session,
                break;
        }
        case LTTNG_DOMAIN_UST:
+               break;
        case LTTNG_DOMAIN_JUL:
        case LTTNG_DOMAIN_LOG4J:
        case LTTNG_DOMAIN_PYTHON:
+               if (!agent_tracing_is_enabled()) {
+                       DBG("Attempted to enable a channel in an agent domain but the agent thread is not running");
+                       ret = LTTNG_ERR_AGENT_TRACING_DISABLED;
+                       goto error;
+               }
                break;
        default:
                ret = LTTNG_ERR_UNKNOWN_DOMAIN;
@@ -2094,6 +2101,12 @@ static int _cmd_enable_event(struct ltt_session *session,
 
                assert(usess);
 
+               if (!agent_tracing_is_enabled()) {
+                       DBG("Attempted to enable an event in an agent domain but the agent thread is not running");
+                       ret = LTTNG_ERR_AGENT_TRACING_DISABLED;
+                       goto error;
+               }
+
                agt = trace_ust_find_agent(usess, domain->type);
                if (!agt) {
                        agt = agent_create(domain->type);
@@ -2600,7 +2613,7 @@ int rename_active_chunk(struct ltt_session *session)
 {
        int ret;
 
-       session->rotate_count++;
+       session->current_archive_id++;
 
        /*
         * The currently active tracing path is now the folder we
@@ -2633,7 +2646,7 @@ int rename_active_chunk(struct ltt_session *session)
                goto end;
        }
 end:
-       session->rotate_count--;
+       session->current_archive_id--;
        return ret;
 }
 
@@ -2669,7 +2682,7 @@ int cmd_stop_trace(struct ltt_session *session)
                sessiond_rotate_timer_stop(session);
        }
 
-       if (session->rotate_count > 0 && !session->rotate_pending) {
+       if (session->current_archive_id > 0 && !session->rotate_pending) {
                ret = rename_active_chunk(session);
                if (ret) {
                        /*
@@ -4430,7 +4443,7 @@ int cmd_rotate_session(struct ltt_session *session,
        }
 
        /* Special case for the first rotation. */
-       if (session->rotate_count == 0) {
+       if (session->current_archive_id == 0) {
                const char *base_path = NULL;
 
                /* Either one of the two sessions is enough to get the root path. */
@@ -4466,7 +4479,7 @@ int cmd_rotate_session(struct ltt_session *session,
        }
        DBG("Current rotate path %s", session->rotation_chunk.current_rotate_path);
 
-       session->rotate_count++;
+       session->current_archive_id++;
        session->rotate_pending = true;
        session->rotation_state = LTTNG_ROTATION_STATE_ONGOING;
 
@@ -4503,7 +4516,7 @@ int cmd_rotate_session(struct ltt_session *session,
                                sizeof(session->rotation_chunk.active_tracing_path),
                                "%s/%s-%" PRIu64,
                                session_get_base_path(session),
-                               datetime, session->rotate_count + 1);
+                               datetime, session->current_archive_id + 1);
                if (ret < 0 || ret == sizeof(session->rotation_chunk.active_tracing_path)) {
                        ERR("Failed to format active kernel tracing path in rotate session command");
                        ret = -LTTNG_ERR_UNK;
@@ -4516,7 +4529,7 @@ int cmd_rotate_session(struct ltt_session *session,
                ret = snprintf(session->kernel_session->consumer->chunk_path,
                                sizeof(session->kernel_session->consumer->chunk_path),
                                "/%s-%" PRIu64, datetime,
-                               session->rotate_count + 1);
+                               session->current_archive_id + 1);
                if (ret < 0 || ret == sizeof(session->kernel_session->consumer->chunk_path)) {
                        ERR("Failed to format the kernel consumer's sub-directory in rotate session command");
                        ret = -LTTNG_ERR_UNK;
@@ -4545,7 +4558,7 @@ int cmd_rotate_session(struct ltt_session *session,
                ret = snprintf(session->rotation_chunk.active_tracing_path,
                                PATH_MAX, "%s/%s-%" PRIu64,
                                session_get_base_path(session),
-                               datetime, session->rotate_count + 1);
+                               datetime, session->current_archive_id + 1);
                if (ret < 0) {
                        ERR("Failed to format active UST tracing path in rotate session command");
                        ret = -LTTNG_ERR_UNK;
@@ -4553,7 +4566,7 @@ int cmd_rotate_session(struct ltt_session *session,
                }
                ret = snprintf(session->ust_session->consumer->chunk_path,
                                PATH_MAX, "/%s-%" PRIu64, datetime,
-                               session->rotate_count + 1);
+                               session->current_archive_id + 1);
                if (ret < 0) {
                        ERR("Failed to format the UST consumer's sub-directory in rotate session command");
                        ret = -LTTNG_ERR_UNK;
@@ -4596,11 +4609,11 @@ int cmd_rotate_session(struct ltt_session *session,
        }
 
        if (rotate_return) {
-               rotate_return->rotation_id = session->rotate_count;
+               rotate_return->rotation_id = session->current_archive_id;
        }
 
-       DBG("Cmd rotate session %s, rotate_id %" PRIu64 " sent", session->name,
-                       session->rotate_count);
+       DBG("Cmd rotate session %s, current_archive_id %" PRIu64 " sent",
+                       session->name, session->current_archive_id);
        ret = LTTNG_OK;
 
 end:
@@ -4623,9 +4636,9 @@ int cmd_rotate_get_info(struct ltt_session *session,
        assert(session);
 
        DBG("Cmd rotate_get_info session %s, rotation id %" PRIu64, session->name,
-                       session->rotate_count);
+                       session->current_archive_id);
 
-       if (session->rotate_count != rotation_id) {
+       if (session->current_archive_id != rotation_id) {
                info_return->status = (int32_t) LTTNG_ROTATION_STATE_EXPIRED;
                ret = LTTNG_OK;
                goto end;
@@ -4814,7 +4827,7 @@ int cmd_session_get_current_output(struct ltt_session *session,
        const char *path;
 
        if (!session->snapshot_mode) {
-               if (session->rotate_count == 0) {
+               if (session->current_archive_id == 0) {
                        if (session->kernel_session) {
                                path = session_get_base_path(session);
                        } else if (session->ust_session) {
This page took 0.026808 seconds and 4 git commands to generate.