[lttng-dev] [RFC PATCH lttng-tools] relayd pipes and error handling
David Goulet
dgoulet at efficios.com
Wed Jul 18 11:54:59 EDT 2012
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
I'm pretty OK with that.
I have utils_* function for that in lttng-sessiond/ ... I think I'm
going to move them to common/ since they are pretty useful for the
complete code tree.
Cheers!
David
Christian Babeux:
> Hi,
>
> The current relayd employ two set of pipes for command relaying
> and thread quit signalling. The relay_cmd_pipe pipes are never
> closed. Also, the thread_quit_pipe pipes are not closed in some
> error cases (fail to parse args, fail to daemonize, etc.). Here is
> a proposed way to cleanup and handle error cases.
>
> Thoughts?
>
> Thanks,
>
> Christian
>
> Fix: relayd relay_cmd_pipe/thread_quit_pipe should be closed on
> exit/error.
>
> diff --git a/src/bin/lttng-relayd/main.c
> b/src/bin/lttng-relayd/main.c index acc6ca8..55452b3 100644 ---
> a/src/bin/lttng-relayd/main.c +++ b/src/bin/lttng-relayd/main.c @@
> -231,14 +231,26 @@ void cleanup(void)
>
> DBG("Cleaning up");
>
> + /* Close thread quit pipes */ for (i = 0; i < 2; i++) { if
> (thread_quit_pipe[i] >= 0) { ret = close(thread_quit_pipe[i]); if
> (ret) { - PERROR("close"); +
> PERROR("close quit pipe"); } } } + + /* Close relay cmd pipes
> */ + for (i = 0; i < 2; i++) { + if
> (relay_cmd_pipe[i] >= 0) { + ret =
> close(relay_cmd_pipe[i]); + if (ret) { +
> PERROR("close cmd pipe"); + } +
> } + } + }
>
> /* @@ -1479,7 +1491,7 @@ int main(int argc, char **argv) /* Parse
> arguments */ progname = argv[0]; if ((ret = parse_args(argc, argv)
> < 0)) { - goto error; + goto exit; }
>
> if ((ret = set_signal_handler()) < 0) { @@ -1491,7 +1503,7 @@ int
> main(int argc, char **argv) ret = daemon(0, 0); if (ret < 0) {
> PERROR("daemon"); - goto error; +
> goto exit; } }
>
> @@ -1502,7 +1514,7 @@ int main(int argc, char **argv) if
> (control_uri->port < 1024 || data_uri->port < 1024) { ERR("Need to
> be root to use ports < 1024"); ret = -1; -
> goto error; + goto exit; } }
>
> @@ -1567,6 +1579,7 @@ exit: if (!ret) { exit(EXIT_SUCCESS); } +
> error: exit(EXIT_FAILURE); }
>
> _______________________________________________ lttng-dev mailing
> list lttng-dev at lists.lttng.org
> http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
-----BEGIN PGP SIGNATURE-----
iQEcBAEBCgAGBQJQBtxQAAoJEELoaioR9I02hjoH/RKfCg0r4nq5AnKDpxJIQEaC
Cy0QUmLZ812prSDaHgoPBL8ItJ4XiLGmFxwj+F0RXP9sT2QuOsiHYRc3aKk1+X5u
RMnIuqx4ZdkakeGkTtZMr3ujmy/vOj9NOMuZsigV9z7g/jL5uXzfL0eJcW9kJLQ3
cNEtdO519q9hInoxpRBkRQtJya1LHoT66oc5AK8TWMBCLjHzvTvvqWNSEBEOfQqH
b7CulD3x6//DvnlVImA3zFNB2YXLvY6bL3XnU9I/DIEENjG1uAP+9/h+IzWRMNcS
F0bttSrK9faUqBedMB81hadx0uLjpQxnIB9oFR2NEW/W1J3HAwwVN5YntZFo+lw=
=BfP8
-----END PGP SIGNATURE-----
More information about the lttng-dev
mailing list