Fix: set the health delta tcp timeout aware
[lttng-tools.git] / src / bin / lttng-sessiond / main.c
index 6c6386d2b3b1107255260110175743fa04ccf9bf..f3b007a4fac7b1fc3cf17ad1927c1264c375c1d0 100644 (file)
@@ -690,9 +690,6 @@ static int update_kernel_stream(struct consumer_data *consumer_data, int fd)
                                        rcu_read_lock();
                                        cds_lfht_for_each_entry(ksess->consumer->socks->ht,
                                                        &iter.iter, socket, node.node) {
-                                               /* Code flow error */
-                                               assert(socket->fd);
-
                                                pthread_mutex_lock(socket->lock);
                                                ret = kernel_consumer_send_channel_stream(socket,
                                                                channel, ksess,
@@ -1024,13 +1021,14 @@ restart:
                        lttcomm_connect_unix_sock(consumer_data->cmd_unix_sock_path);
                consumer_data->metadata_fd =
                        lttcomm_connect_unix_sock(consumer_data->cmd_unix_sock_path);
-               if (consumer_data->cmd_sock < 0 || consumer_data->metadata_fd < 0) {
+               if (consumer_data->cmd_sock < 0
+                               || consumer_data->metadata_fd < 0) {
                        PERROR("consumer connect cmd socket");
                        /* On error, signal condition and quit. */
                        signal_consumer_condition(consumer_data, -1);
                        goto error;
                }
-               consumer_data->metadata_sock.fd = &consumer_data->metadata_fd;
+               consumer_data->metadata_sock.fd_ptr = &consumer_data->metadata_fd;
                /* Create metadata socket lock. */
                consumer_data->metadata_sock.lock = zmalloc(sizeof(pthread_mutex_t));
                if (consumer_data->metadata_sock.lock == NULL) {
@@ -1143,8 +1141,8 @@ exit:
 error:
        /*
         * We lock here because we are about to close the sockets and some other
-        * thread might be using them so wait before we are exclusive which will
-        * abort all other consumer command by other threads.
+        * thread might be using them so get exclusive access which will abort all
+        * other consumer command by other threads.
         */
        pthread_mutex_lock(&consumer_data->lock);
 
@@ -1173,8 +1171,8 @@ error:
                }
                consumer_data->cmd_sock = -1;
        }
-       if (*consumer_data->metadata_sock.fd >= 0) {
-               ret = close(*consumer_data->metadata_sock.fd);
+       if (*consumer_data->metadata_sock.fd_ptr >= 0) {
+               ret = close(*consumer_data->metadata_sock.fd_ptr);
                if (ret) {
                        PERROR("close");
                }
@@ -1191,6 +1189,7 @@ error:
        unlink(consumer_data->cmd_unix_sock_path);
        consumer_data->pid = 0;
        pthread_mutex_unlock(&consumer_data->lock);
+
        /* Cleanup metadata socket mutex. */
        pthread_mutex_destroy(consumer_data->metadata_sock.lock);
        free(consumer_data->metadata_sock.lock);
@@ -4653,6 +4652,14 @@ int main(int argc, char **argv)
 
        /* Initialize communication library */
        lttcomm_init();
+       /* This is to get the TCP timeout value. */
+       lttcomm_inet_init();
+
+       /*
+        * Initialize the health check subsystem. This call should set the
+        * appropriate time values.
+        */
+       health_init();
 
        /* Create thread to manage the client socket */
        ret = pthread_create(&ht_cleanup_thread, NULL,
This page took 0.027235 seconds and 5 git commands to generate.