projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Use consumer fd reference in consumer socket obj
[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 2929bba0d6f677cfdf813e3c89a5bb8d7bc51921..b688a4c09e45f25c3d62bc82b86cc73bcb23fe16 100644
(file)
--- a/
src/bin/lttng-sessiond/main.c
+++ b/
src/bin/lttng-sessiond/main.c
@@
-90,7
+90,6
@@
static struct consumer_data kconsumer_data = {
.cmd_unix_sock_path = DEFAULT_KCONSUMERD_CMD_SOCK_PATH,
.err_sock = -1,
.cmd_sock = -1,
.cmd_unix_sock_path = DEFAULT_KCONSUMERD_CMD_SOCK_PATH,
.err_sock = -1,
.cmd_sock = -1,
- .metadata_sock.fd = -1,
.pid_mutex = PTHREAD_MUTEX_INITIALIZER,
.lock = PTHREAD_MUTEX_INITIALIZER,
.cond = PTHREAD_COND_INITIALIZER,
.pid_mutex = PTHREAD_MUTEX_INITIALIZER,
.lock = PTHREAD_MUTEX_INITIALIZER,
.cond = PTHREAD_COND_INITIALIZER,
@@
-102,7
+101,6
@@
static struct consumer_data ustconsumer64_data = {
.cmd_unix_sock_path = DEFAULT_USTCONSUMERD64_CMD_SOCK_PATH,
.err_sock = -1,
.cmd_sock = -1,
.cmd_unix_sock_path = DEFAULT_USTCONSUMERD64_CMD_SOCK_PATH,
.err_sock = -1,
.cmd_sock = -1,
- .metadata_sock.fd = -1,
.pid_mutex = PTHREAD_MUTEX_INITIALIZER,
.lock = PTHREAD_MUTEX_INITIALIZER,
.cond = PTHREAD_COND_INITIALIZER,
.pid_mutex = PTHREAD_MUTEX_INITIALIZER,
.lock = PTHREAD_MUTEX_INITIALIZER,
.cond = PTHREAD_COND_INITIALIZER,
@@
-114,7
+112,6
@@
static struct consumer_data ustconsumer32_data = {
.cmd_unix_sock_path = DEFAULT_USTCONSUMERD32_CMD_SOCK_PATH,
.err_sock = -1,
.cmd_sock = -1,
.cmd_unix_sock_path = DEFAULT_USTCONSUMERD32_CMD_SOCK_PATH,
.err_sock = -1,
.cmd_sock = -1,
- .metadata_sock.fd = -1,
.pid_mutex = PTHREAD_MUTEX_INITIALIZER,
.lock = PTHREAD_MUTEX_INITIALIZER,
.cond = PTHREAD_COND_INITIALIZER,
.pid_mutex = PTHREAD_MUTEX_INITIALIZER,
.lock = PTHREAD_MUTEX_INITIALIZER,
.cond = PTHREAD_COND_INITIALIZER,
@@
-694,7
+691,7
@@
static int update_kernel_stream(struct consumer_data *consumer_data, int fd)
cds_lfht_for_each_entry(ksess->consumer->socks->ht,
&iter.iter, socket, node.node) {
/* Code flow error */
cds_lfht_for_each_entry(ksess->consumer->socks->ht,
&iter.iter, socket, node.node) {
/* Code flow error */
- assert(socket->fd
>= 0
);
+ assert(socket->fd);
pthread_mutex_lock(socket->lock);
ret = kernel_consumer_send_channel_stream(socket,
pthread_mutex_lock(socket->lock);
ret = kernel_consumer_send_channel_stream(socket,
@@
-1019,15
+1016,15
@@
restart:
/* Connect both socket, command and metadata. */
consumer_data->cmd_sock =
lttcomm_connect_unix_sock(consumer_data->cmd_unix_sock_path);
/* Connect both socket, command and metadata. */
consumer_data->cmd_sock =
lttcomm_connect_unix_sock(consumer_data->cmd_unix_sock_path);
- consumer_data->metadata_
sock.
fd =
+ consumer_data->metadata_fd =
lttcomm_connect_unix_sock(consumer_data->cmd_unix_sock_path);
lttcomm_connect_unix_sock(consumer_data->cmd_unix_sock_path);
- if (consumer_data->cmd_sock < 0 ||
- consumer_data->metadata_sock.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;
}
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;
/* Create metadata socket lock. */
consumer_data->metadata_sock.lock = zmalloc(sizeof(pthread_mutex_t));
if (consumer_data->metadata_sock.lock == NULL) {
/* Create metadata socket lock. */
consumer_data->metadata_sock.lock = zmalloc(sizeof(pthread_mutex_t));
if (consumer_data->metadata_sock.lock == NULL) {
@@
-1040,7
+1037,7
@@
restart:
signal_consumer_condition(consumer_data, 1);
DBG("Consumer command socket ready (fd: %d", consumer_data->cmd_sock);
DBG("Consumer metadata socket ready (fd: %d)",
signal_consumer_condition(consumer_data, 1);
DBG("Consumer command socket ready (fd: %d", consumer_data->cmd_sock);
DBG("Consumer metadata socket ready (fd: %d)",
- consumer_data->metadata_
sock.
fd);
+ consumer_data->metadata_fd);
} else {
ERR("consumer error when waiting for SOCK_READY : %s",
lttcomm_get_readable_code(-code));
} else {
ERR("consumer error when waiting for SOCK_READY : %s",
lttcomm_get_readable_code(-code));
@@
-1060,7
+1057,7
@@
restart:
}
/* Add metadata socket that is successfully connected. */
}
/* Add metadata socket that is successfully connected. */
- ret = lttng_poll_add(&events, consumer_data->metadata_
sock.
fd,
+ ret = lttng_poll_add(&events, consumer_data->metadata_fd,
LPOLLIN | LPOLLRDHUP);
if (ret < 0) {
goto error;
LPOLLIN | LPOLLRDHUP);
if (ret < 0) {
goto error;
@@
-1119,7
+1116,7
@@
restart_poll:
lttcomm_get_readable_code(-code));
goto exit;
lttcomm_get_readable_code(-code));
goto exit;
- } else if (pollfd == consumer_data->metadata_
sock.
fd) {
+ } else if (pollfd == consumer_data->metadata_fd) {
/* UST metadata requests */
ret = ust_consumer_metadata_request(
&consumer_data->metadata_sock);
/* UST metadata requests */
ret = ust_consumer_metadata_request(
&consumer_data->metadata_sock);
@@
-1163,8
+1160,8
@@
error:
}
consumer_data->cmd_sock = -1;
}
}
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 >= 0) {
+ ret = close(
*
consumer_data->metadata_sock.fd);
if (ret) {
PERROR("close");
}
if (ret) {
PERROR("close");
}
@@
-1298,11
+1295,17
@@
static void *thread_manage_apps(void *data)
goto error;
}
goto error;
}
- /* Set socket timeout for both receiving and ending */
+ /*
+ * Set socket timeout for both receiving and ending.
+ * app_socket_timeout is in seconds, whereas
+ * lttcomm_setsockopt_rcv_timeout and
+ * lttcomm_setsockopt_snd_timeout expect msec as
+ * parameter.
+ */
(void) lttcomm_setsockopt_rcv_timeout(sock,
(void) lttcomm_setsockopt_rcv_timeout(sock,
- app_socket_timeout);
+ app_socket_timeout
* 1000
);
(void) lttcomm_setsockopt_snd_timeout(sock,
(void) lttcomm_setsockopt_snd_timeout(sock,
- app_socket_timeout);
+ app_socket_timeout
* 1000
);
DBG("Apps with sock %d added to poll set", sock);
DBG("Apps with sock %d added to poll set", sock);
@@
-2704,6
+2707,10
@@
static int process_client_msg(struct command_ctx *cmd_ctx, int sock,
break;
case LTTNG_DOMAIN_UST:
{
break;
case LTTNG_DOMAIN_UST:
{
+ if (!ust_app_supported()) {
+ ret = LTTNG_ERR_NO_UST;
+ goto error;
+ }
/* Consumer is in an ERROR state. Report back to client */
if (uatomic_read(&ust_consumerd_state) == CONSUMER_ERROR) {
ret = LTTNG_ERR_NO_USTCONSUMERD;
/* Consumer is in an ERROR state. Report back to client */
if (uatomic_read(&ust_consumerd_state) == CONSUMER_ERROR) {
ret = LTTNG_ERR_NO_USTCONSUMERD;
@@
-4069,12
+4076,12
@@
static int set_permissions(char *rundir)
ret = allowed_group();
if (ret < 0) {
WARN("No tracing group detected");
ret = allowed_group();
if (ret < 0) {
WARN("No tracing group detected");
- ret = 0;
- goto end;
+ /* Setting gid to 0 if no tracing group is found */
+ gid = 0;
+ } else {
+ gid = ret;
}
}
- gid = ret;
-
/* Set lttng run dir */
ret = chown(rundir, 0, gid);
if (ret < 0) {
/* Set lttng run dir */
ret = chown(rundir, 0, gid);
if (ret < 0) {
@@
-4082,7
+4089,7
@@
static int set_permissions(char *rundir)
PERROR("chown");
}
PERROR("chown");
}
- /* Ensure tracing group can search the run dir */
+ /* Ensure
all applications and
tracing group can search the run dir */
ret = chmod(rundir, S_IRWXU | S_IXGRP | S_IXOTH);
if (ret < 0) {
ERR("Unable to set permissions on %s", rundir);
ret = chmod(rundir, S_IRWXU | S_IXGRP | S_IXOTH);
if (ret < 0) {
ERR("Unable to set permissions on %s", rundir);
@@
-4119,7
+4126,6
@@
static int set_permissions(char *rundir)
DBG("All permissions are set");
DBG("All permissions are set");
-end:
return ret;
}
return ret;
}
@@
-4631,6
+4637,9
@@
int main(int argc, char **argv)
write_pidfile();
write_pidfile();
+ /* Initialize communication library */
+ lttcomm_init();
+
/* Create thread to manage the client socket */
ret = pthread_create(&ht_cleanup_thread, NULL,
thread_ht_cleanup, (void *) NULL);
/* Create thread to manage the client socket */
ret = pthread_create(&ht_cleanup_thread, NULL,
thread_ht_cleanup, (void *) NULL);
This page took
0.026409 seconds
and
4
git commands to generate.