projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix: hold consumer socket lock for consumer_send_msg
[lttng-tools.git]
/
src
/
bin
/
lttng-sessiond
/
ust-consumer.c
diff --git
a/src/bin/lttng-sessiond/ust-consumer.c
b/src/bin/lttng-sessiond/ust-consumer.c
index a431a19f01ac8e9706caf5201529f0559586f4d9..b9865a0f015b76e0abb5ebcedfd8b92238b47465 100644
(file)
--- a/
src/bin/lttng-sessiond/ust-consumer.c
+++ b/
src/bin/lttng-sessiond/ust-consumer.c
@@
-53,8
+53,11
@@
static char *setup_trace_path(struct consumer_output *consumer,
health_code_update();
health_code_update();
- /* Allocate our self the string to make sure we never exceed PATH_MAX. */
- pathname = zmalloc(PATH_MAX);
+ /*
+ * Allocate the string ourself to make sure we never exceed
+ * LTTNG_PATH_MAX.
+ */
+ pathname = zmalloc(LTTNG_PATH_MAX);
if (!pathname) {
goto error;
}
if (!pathname) {
goto error;
}
@@
-62,7
+65,7
@@
static char *setup_trace_path(struct consumer_output *consumer,
/* Get correct path name destination */
if (consumer->type == CONSUMER_DST_LOCAL) {
/* Set application path to the destination path */
/* Get correct path name destination */
if (consumer->type == CONSUMER_DST_LOCAL) {
/* Set application path to the destination path */
- ret = snprintf(pathname, PATH_MAX, "%s%s%s%s",
+ ret = snprintf(pathname,
LTTNG_
PATH_MAX, "%s%s%s%s",
consumer->dst.session_root_path,
consumer->chunk_path,
consumer->subdir, ua_sess->path);
consumer->dst.session_root_path,
consumer->chunk_path,
consumer->subdir, ua_sess->path);
@@
-81,7
+84,10
@@
static char *setup_trace_path(struct consumer_output *consumer,
}
}
} else {
}
}
} else {
- ret = snprintf(pathname, PATH_MAX, "%s%s", consumer->subdir,
+ ret = snprintf(pathname, LTTNG_PATH_MAX, "%s%s%s%s",
+ consumer->dst.net.base_dir,
+ consumer->chunk_path,
+ consumer->subdir,
ua_sess->path);
if (ret < 0) {
PERROR("snprintf channel path");
ua_sess->path);
if (ret < 0) {
PERROR("snprintf channel path");
@@
-507,7
+513,9
@@
int ust_consumer_metadata_request(struct consumer_socket *socket)
memset(&msg, 0, sizeof(msg));
msg.cmd_type = LTTNG_ERR_UND;
memset(&msg, 0, sizeof(msg));
msg.cmd_type = LTTNG_ERR_UND;
+ pthread_mutex_lock(socket->lock);
(void) consumer_send_msg(socket, &msg);
(void) consumer_send_msg(socket, &msg);
+ pthread_mutex_unlock(socket->lock);
/*
* This is possible since the session might have been destroyed
* during a consumer metadata request. So here, return gracefully
/*
* This is possible since the session might have been destroyed
* during a consumer metadata request. So here, return gracefully
This page took
0.024336 seconds
and
4
git commands to generate.