Fix: assert(0) when listing Python events with MI
[lttng-tools.git] / src / bin / lttng-sessiond / event.c
index 0efdc9253d59adc98da8508c8909b9a6d9e58f06..1c0955c3757b69dbfb5439064ce565fd2300a1ee 100644 (file)
@@ -129,7 +129,8 @@ int event_kernel_disable_event_all(struct ltt_kernel_channel *kchan)
  * We own filter_expression and filter.
  */
 int event_kernel_enable_event(struct ltt_kernel_channel *kchan,
-               struct lttng_event *event)
+               struct lttng_event *event, char *filter_expression,
+               struct lttng_filter_bytecode *filter)
 {
        int ret;
        struct ltt_kernel_event *kevent;
@@ -137,10 +138,14 @@ int event_kernel_enable_event(struct ltt_kernel_channel *kchan,
        assert(kchan);
        assert(event);
 
-       kevent = trace_kernel_get_event_by_name(event->name, kchan,
-                       event->type);
+       kevent = trace_kernel_find_event(event->name, kchan,
+                       event->type, filter);
        if (kevent == NULL) {
-               ret = kernel_create_event(event, kchan);
+               ret = kernel_create_event(event, kchan,
+                       filter_expression, filter);
+               /* We have passed ownership */
+               filter_expression = NULL;
+               filter = NULL;
                if (ret < 0) {
                        switch (-ret) {
                        case EEXIST:
@@ -169,6 +174,8 @@ int event_kernel_enable_event(struct ltt_kernel_channel *kchan,
 
        ret = LTTNG_OK;
 end:
+       free(filter_expression);
+       free(filter);
        return ret;
 }
 
@@ -612,7 +619,7 @@ const char *event_get_default_agent_ust_name(enum lttng_domain_type domain)
                }
                break;
        case LTTNG_DOMAIN_PYTHON:
-               default_event_name = DEFAULT_USER_PYTHON_EVENT_NAME;
+               default_event_name = DEFAULT_PYTHON_EVENT_NAME;
                break;
        default:
                assert(0);
This page took 0.023452 seconds and 4 git commands to generate.