projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix: Teardown of thread_manage_clients on failure of listen/create_poll
[lttng-tools.git]
/
src
/
bin
/
lttng-sessiond
/
main.c
diff --git
a/src/bin/lttng-sessiond/main.c
b/src/bin/lttng-sessiond/main.c
index 90f11d648e537fee78cbb88506dc6e026f675909..fc52d759b2130b8f1bdd2e122f24c1990f9b85d2 100644
(file)
--- a/
src/bin/lttng-sessiond/main.c
+++ b/
src/bin/lttng-sessiond/main.c
@@
-3111,7
+3111,7
@@
static void *thread_manage_clients(void *data)
ret = lttcomm_listen_unix_sock(client_sock);
if (ret < 0) {
ret = lttcomm_listen_unix_sock(client_sock);
if (ret < 0) {
- goto error;
+ goto error
_listen
;
}
/*
}
/*
@@
-3120,7
+3120,7
@@
static void *thread_manage_clients(void *data)
*/
ret = create_thread_poll_set(&events, 2);
if (ret < 0) {
*/
ret = create_thread_poll_set(&events, 2);
if (ret < 0) {
- goto error;
+ goto error
_create_poll
;
}
/* Add the application registration socket */
}
/* Add the application registration socket */
@@
-3299,13
+3299,18
@@
static void *thread_manage_clients(void *data)
exit:
error:
exit:
error:
- if (err) {
- health_error(&health_thread_cmd);
- ERR("Health error occurred in %s", __func__);
+ if (sock >= 0) {
+ ret = close(sock);
+ if (ret) {
+ PERROR("close");
+ }
}
}
- health_exit(&health_thread_cmd);
- DBG("Client thread dying");
+ lttng_poll_clean(&events);
+ clean_command_ctx(&cmd_ctx);
+
+error_listen:
+error_create_poll:
unlink(client_unix_sock_path);
if (client_sock >= 0) {
ret = close(client_sock);
unlink(client_unix_sock_path);
if (client_sock >= 0) {
ret = close(client_sock);
@@
-3313,15
+3318,15
@@
error:
PERROR("close");
}
}
PERROR("close");
}
}
- if (sock >= 0) {
- ret = close(sock);
- if (ret) {
- PERROR("close");
- }
+
+ if (err) {
+ health_error(&health_thread_cmd);
+ ERR("Health error occurred in %s", __func__);
}
}
- lttng_poll_clean(&events);
- clean_command_ctx(&cmd_ctx);
+ health_exit(&health_thread_cmd);
+
+ DBG("Client thread dying");
rcu_unregister_thread();
return NULL;
rcu_unregister_thread();
return NULL;
This page took
0.02426 seconds
and
4
git commands to generate.