From: Jérémie Galarneau Date: Fri, 11 Oct 2019 20:26:29 +0000 (-0400) Subject: Fix: sessiond: don't assert on event creation error X-Git-Tag: v2.12.0-rc1~310 X-Git-Url: https://git.liburcu.org/?a=commitdiff_plain;h=e9f11505edfba881935d966c0ce09a39571a1887;hp=a945cdc7d797f60f8ef77f36398944600fde6d1a;p=lttng-tools.git Fix: sessiond: don't assert on event creation error Don't assert if an application tracer reports that an event already exists. This could be caused by a bug on the tracer end or memory corruption on the application's end. In either case, an assert() is too strict; simply report the error. 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 aea37badb..b3251c19c 100644 --- a/src/bin/lttng-sessiond/ust-app.c +++ b/src/bin/lttng-sessiond/ust-app.c @@ -3142,8 +3142,19 @@ int create_ust_app_event(struct ust_app_session *ua_sess, /* Create it on the tracer side */ ret = create_ust_event(app, ua_sess, ua_chan, ua_event); if (ret < 0) { - /* Not found previously means that it does not exist on the tracer */ - assert(ret != -LTTNG_UST_ERR_EXIST); + /* + * Not found previously means that it does not exist on the + * tracer. If the application reports that the event existed, + * it means there is a bug in the sessiond or lttng-ust + * (or corruption, etc.) + */ + if (ret == -LTTNG_UST_ERR_EXIST) { + ERR("Tracer for application reported that an event being created already existed: " + "event_name = \"%s\", pid = %d, ppid = %d, uid = %d, gid = %d", + uevent->attr.name, + app->pid, app->ppid, app->uid, + app->gid); + } goto error; }