Fix: disable JUL event on UST side
[lttng-tools.git] / src / bin / lttng-sessiond / cmd.c
index eb516d3b10c7cbf724c7f7b4c4090db24a510274..fff4b917c230e322e36df7caa0ae8a7ab8619bdc 100644 (file)
@@ -221,6 +221,8 @@ static int list_lttng_jul_events(struct jul_domain *dom,
                strncpy(tmp_events[i].name, event->name, sizeof(tmp_events[i].name));
                tmp_events[i].name[sizeof(tmp_events[i].name) - 1] = '\0';
                tmp_events[i].enabled = event->enabled;
+               tmp_events[i].loglevel = event->loglevel;
+               tmp_events[i].loglevel_type = event->loglevel_type;
                i++;
        }
        rcu_read_unlock();
@@ -933,6 +935,16 @@ int cmd_enable_channel(struct ltt_session *session,
                attr->attr.switch_timer_interval = 0;
        }
 
+       /*
+        * The ringbuffer (both in user space and kernel) behave badly in overwrite
+        * mode and with less than 2 subbuf so block it right away and send back an
+        * invalid attribute error.
+        */
+       if (attr->attr.overwrite && attr->attr.num_subbuf < 2) {
+               ret = LTTNG_ERR_INVALID;
+               goto error;
+       }
+
        switch (domain->type) {
        case LTTNG_DOMAIN_KERNEL:
        {
@@ -1454,9 +1466,9 @@ int cmd_enable_event(struct ltt_session *session, struct lttng_domain *domain,
 
                /* The wild card * means that everything should be enabled. */
                if (strncmp(event->name, "*", 1) == 0 && strlen(event->name) == 1) {
-                       ret = event_jul_enable_all(usess, event);
+                       ret = event_jul_enable_all(usess, event, filter);
                } else {
-                       ret = event_jul_enable(usess, event);
+                       ret = event_jul_enable(usess, event, filter);
                }
                if (ret != LTTNG_OK) {
                        goto error;
@@ -1677,7 +1689,7 @@ int cmd_enable_event_all(struct ltt_session *session,
                strncpy(event.name, "*", sizeof(event.name));
                event.name[sizeof(event.name) - 1] = '\0';
 
-               ret = event_jul_enable_all(usess, &event);
+               ret = event_jul_enable_all(usess, &event, filter);
                if (ret != LTTNG_OK) {
                        goto error;
                }
@@ -1975,6 +1987,17 @@ int cmd_set_consumer_uri(int domain, struct ltt_session *session,
                }
        }
 
+       /*
+        * Make sure to set the session in output mode after we set URI since a
+        * session can be created without URL (thus flagged in no output mode).
+        */
+       session->output_traces = 1;
+       if (ksess) {
+               ksess->output_traces = 1;
+       } else if (usess) {
+               usess->output_traces = 1;
+       }
+
        /* All good! */
        ret = LTTNG_OK;
 
This page took 0.027984 seconds and 5 git commands to generate.