Fix: loading of live session within userspace domains
[lttng-tools.git] / src / bin / lttng / commands / create.c
index a7d327fbcada361477b71f44d025595adba67056..dd3fa26886cbca5cc8e58a7f68f6800f7e8275ab 100644 (file)
@@ -215,18 +215,15 @@ static int set_consumer_url(const char *session_name, const char *ctrl_url,
 {
        int ret;
        struct lttng_handle *handle;
-       struct lttng_domain dom;
 
        assert(session_name);
 
        /*
-        * Set handle with the session name and the domain set to 0. This means to
-        * the session daemon that the next action applies on the tracing session
-        * rather then the domain specific session.
+        * Set handle with the session_name, but no domain. This implies that
+        * the actions taken with this handle apply on the tracing session
+        * rather then the domain-specific session.
         */
-       memset(&dom, 0, sizeof(dom));
-
-       handle = lttng_create_handle(session_name, &dom);
+       handle = lttng_create_handle(session_name, NULL);
        if (handle == NULL) {
                ret = CMD_FATAL;
                goto error;
@@ -579,14 +576,22 @@ static int spawn_sessiond(char *pathname)
                kill(getppid(), SIGTERM);       /* wake parent */
                exit(EXIT_FAILURE);
        } else if (pid > 0) {
-               int status;
-
                /*
                 * In daemon mode (--daemonize), sessiond only exits when
                 * it's ready to accept commands.
                 */
                for (;;) {
-                       waitpid(pid, &status, 0);
+                       int status;
+                       pid_t wait_pid_ret = waitpid(pid, &status, 0);
+
+                       if (wait_pid_ret < 0) {
+                               if (errno == EINTR) {
+                                       continue;
+                               }
+                               PERROR("waitpid");
+                               ret = -errno;
+                               goto end;
+                       }
 
                        if (WIFSIGNALED(status)) {
                                ERR("Session daemon was killed by signal %d",
This page took 0.024308 seconds and 4 git commands to generate.