Fix: Don't send agent disable event command twice
authorJérémie Galarneau <jeremie.galarneau@efficios.com>
Mon, 3 Aug 2015 20:45:00 +0000 (16:45 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Mon, 3 Aug 2015 20:45:00 +0000 (16:45 -0400)
The session daemon sends a "disable event" command to agents for each
event, enabled or not, on session destroy. This had no adverse effect
of the Java agent since it suffered from an unrelated bug which ignored
any refcount decrementation.

This fix bumps the command version to "1" to indicate that this behavior
is fixed on the session daemon's end.

Fixes #884

Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
src/bin/lttng-sessiond/agent.c

index 7349d09f0e7edd9dbfad5e082e89a0825f440a26..9091a53d7822011e38e97282e56cdcaaea43b97c 100644 (file)
@@ -444,7 +444,7 @@ int agent_send_registration_done(struct agent_app *app)
 
        DBG("Agent sending registration done to app socket %d", app->sock->fd);
 
 
        DBG("Agent sending registration done to app socket %d", app->sock->fd);
 
-       return send_header(app->sock, 0, AGENT_CMD_REG_DONE, 0);
+       return send_header(app->sock, 0, AGENT_CMD_REG_DONE, 1);
 }
 
 /*
 }
 
 /*
@@ -494,11 +494,14 @@ error:
 int agent_disable_event(struct agent_event *event,
                enum lttng_domain_type domain)
 {
 int agent_disable_event(struct agent_event *event,
                enum lttng_domain_type domain)
 {
-       int ret;
+       int ret = LTTNG_OK;
        struct agent_app *app;
        struct lttng_ht_iter iter;
 
        assert(event);
        struct agent_app *app;
        struct lttng_ht_iter iter;
 
        assert(event);
+       if (!event->enabled) {
+               goto end;
+       }
 
        rcu_read_lock();
 
 
        rcu_read_lock();
 
@@ -516,10 +519,10 @@ int agent_disable_event(struct agent_event *event,
        }
 
        event->enabled = 0;
        }
 
        event->enabled = 0;
-       ret = LTTNG_OK;
 
 error:
        rcu_read_unlock();
 
 error:
        rcu_read_unlock();
+end:
        return ret;
 }
 
        return ret;
 }
 
This page took 0.026118 seconds and 4 git commands to generate.