From: Jérémie Galarneau Date: Mon, 3 Aug 2015 20:45:00 +0000 (-0400) Subject: Fix: Don't send agent disable event command twice X-Git-Tag: v2.8.0-rc1~525 X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=commitdiff_plain;h=f1bc01296844846c89e13f34376461f57387d999;ds=sidebyside Fix: Don't send agent disable event command twice 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 --- diff --git a/src/bin/lttng-sessiond/agent.c b/src/bin/lttng-sessiond/agent.c index 7349d09f0..9091a53d7 100644 --- a/src/bin/lttng-sessiond/agent.c +++ b/src/bin/lttng-sessiond/agent.c @@ -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); - 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 ret; + int ret = LTTNG_OK; struct agent_app *app; struct lttng_ht_iter iter; assert(event); + if (!event->enabled) { + goto end; + } rcu_read_lock(); @@ -516,10 +519,10 @@ int agent_disable_event(struct agent_event *event, } event->enabled = 0; - ret = LTTNG_OK; error: rcu_read_unlock(); +end: return ret; }