Merge branch 'master' of git://git.lttng.org/lttng-tools
[lttng-tools.git] / lttng-sessiond / ust-app.c
index 8bfb6b264aa5c27166d75905c1b6a55f2dae6716..3de826bc2d97d8ca8850735af366291a4afb6c86 100644 (file)
@@ -584,7 +584,7 @@ static int create_ust_channel(struct ust_app *app,
        ret = ustctl_create_channel(app->key.sock, ua_sess->handle,
                        (struct lttng_ust_channel_attr *)&ua_chan->attr, &ua_chan->obj);
        if (ret < 0) {
-               DBG("Error creating channel %s for app (pid: %d, sock: %d) "
+               ERR("Creating channel %s for app (pid: %d, sock: %d) "
                                "and session handle %d with ret %d",
                                ua_chan->name, app->key.pid, app->key.sock,
                                ua_sess->handle, ret);
@@ -592,9 +592,6 @@ static int create_ust_channel(struct ust_app *app,
        }
 
        ua_chan->handle = ua_chan->obj->handle;
-       ua_chan->attr.shm_fd = ua_chan->obj->shm_fd;
-       ua_chan->attr.wait_fd = ua_chan->obj->wait_fd;
-       ua_chan->attr.memory_map_size = ua_chan->obj->memory_map_size;
 
        DBG2("UST app channel %s created successfully for pid:%d and sock:%d",
                        ua_chan->name, app->key.pid, app->key.sock);
@@ -1062,8 +1059,6 @@ static struct ust_app_channel *create_ust_app_channel(
                        goto error;
                }
                shadow_copy_channel(ua_chan, uchan);
-
-               lttng_ht_add_unique_str(ua_sess->channels, &ua_chan->node);
        } else {
                ua_chan = caa_container_of(ua_chan_node, struct ust_app_channel, node);
        }
@@ -1073,6 +1068,8 @@ static struct ust_app_channel *create_ust_app_channel(
                goto error;
        }
 
+       lttng_ht_add_unique_str(ua_sess->channels, &ua_chan->node);
+
        return ua_chan;
 
 error:
@@ -1299,6 +1296,11 @@ void ust_app_unregister(int sock)
 
        DBG("PID %d unregistering with sock %d", lta->key.pid, sock);
 
+       /* Remove application from socket hash table */
+       lttng_ht_lookup(ust_app_sock_key_map, (void *)((unsigned long) sock), &iter);
+       ret = lttng_ht_del(ust_app_sock_key_map, &iter);
+       assert(!ret);
+
        /* Get the node reference for a call_rcu */
        lttng_ht_lookup(ust_app_ht, (void *)((unsigned long) lta->key.pid), &iter);
        node = lttng_ht_iter_get_node_ulong(&iter);
@@ -1307,6 +1309,7 @@ void ust_app_unregister(int sock)
                goto error;
        }
 
+       /* Remove application from PID hash table */
        ret = lttng_ht_del(ust_app_ht, &iter);
        assert(!ret);
        call_rcu(&node->head, delete_ust_app_rcu);
This page took 0.024247 seconds and 4 git commands to generate.