X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;ds=sidebyside;f=src%2Fbin%2Flttng-sessiond%2Fmain.c;h=627560f499773e0732e4e1f8cccf70c220483cc2;hb=d831c2497e9e8b2360cbe2026fdb2d736fa07641;hp=6c6386d2b3b1107255260110175743fa04ccf9bf;hpb=fdadac0853f699c7dc829162955cc8f459b6d2f2;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/main.c b/src/bin/lttng-sessiond/main.c index 6c6386d2b..627560f49 100644 --- a/src/bin/lttng-sessiond/main.c +++ b/src/bin/lttng-sessiond/main.c @@ -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,8 @@ int main(int argc, char **argv) /* Initialize communication library */ lttcomm_init(); + /* This is to get the TCP timeout value. */ + lttcomm_inet_init(); /* Create thread to manage the client socket */ ret = pthread_create(&ht_cleanup_thread, NULL,