From: Mathieu Desnoyers Date: Wed, 14 Nov 2018 22:46:26 +0000 (-0500) Subject: Fix: channel errors on local stress-tests X-Git-Tag: v2.10.6~14 X-Git-Url: https://git.lttng.org./?a=commitdiff_plain;h=2ac146ae95a471eed1ed6dfda38e0be38daca82a;p=lttng-tools.git Fix: channel errors on local stress-tests On local stress-tests with per-pid buffers, error paths triggered when trying to create a channel on an application already going away end up tiggering the channel destruction with "-1" socket parameter. This function attempts to send a notification of channel destruction (erroneously) and attempts to sum counters into a channel object which may not have been populated yet. Therefore, don't perform those side-effects when invoked from error path caused by channel creation error. Signed-off-by: Mathieu Desnoyers Signed-off-by: Jérémie Galarneau --- diff --git a/src/bin/lttng-sessiond/ust-app.c b/src/bin/lttng-sessiond/ust-app.c index e6b4250c1..48da16b10 100644 --- a/src/bin/lttng-sessiond/ust-app.c +++ b/src/bin/lttng-sessiond/ust-app.c @@ -486,9 +486,11 @@ void delete_ust_app_channel(int sock, struct ust_app_channel *ua_chan, registry = get_session_registry(ua_chan->session); if (registry) { ust_registry_channel_del_free(registry, ua_chan->key, - true); + sock >= 0); + } + if (sock >= 0) { + save_per_pid_lost_discarded_counters(ua_chan); } - save_per_pid_lost_discarded_counters(ua_chan); } if (ua_chan->obj != NULL) {