X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=lttng-sessiond%2Fust-app.c;h=3de826bc2d97d8ca8850735af366291a4afb6c86;hp=8bfb6b264aa5c27166d75905c1b6a55f2dae6716;hb=008dd0fe872d71d154867d25579b58a0a204d93d;hpb=2c348c103aae0cb4a2832c1946578e40fe0a61af diff --git a/lttng-sessiond/ust-app.c b/lttng-sessiond/ust-app.c index 8bfb6b264..3de826bc2 100644 --- a/lttng-sessiond/ust-app.c +++ b/lttng-sessiond/ust-app.c @@ -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);