Fix return value on ust app session create
authorDavid Goulet <dgoulet@efficios.com>
Tue, 14 Feb 2012 20:40:17 +0000 (15:40 -0500)
committerDavid Goulet <dgoulet@efficios.com>
Tue, 14 Feb 2012 20:40:19 +0000 (15:40 -0500)
Two possible error can occur here where the malloc() failed or the
tracer is gone (app unregistered) so two error code is needed.

Signed-off-by: David Goulet <dgoulet@efficios.com>
src/bin/lttng-sessiond/ust-app.c

index 2b66b92c07d5e4b41043256c9a2695d0080f6746..bb012b5d84fc0e8b92ace19dde174c2dcb633fef 100644 (file)
@@ -865,6 +865,8 @@ static struct ust_app_session *create_ust_app_session(
                ret = ustctl_create_session(app->key.sock);
                if (ret < 0) {
                        ERR("Creating session for app pid %d", app->key.pid);
+                       /* This means that the tracer is gone... */
+                       ua_sess = (void*) -1UL;
                        goto error;
                }
 
@@ -1757,8 +1759,11 @@ int ust_app_create_channel_glb(struct ltt_ust_session *usess,
                 */
                ua_sess = create_ust_app_session(usess, app);
                if (ua_sess == NULL) {
-                       /* Major problem here and it's maybe the tracer or malloc() */
+                       /* The malloc() failed. */
                        goto error;
+               } else if (ua_sess == (void *) -1UL) {
+                       /* The application's socket is not valid. Contiuing */
+                       continue;
                }
 
                /* Create channel onto application */
This page took 0.027569 seconds and 4 git commands to generate.