projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix: bad handling of incoming data in consumer thread
[lttng-tools.git]
/
src
/
bin
/
lttng-consumerd
/
health-consumerd.c
diff --git
a/src/bin/lttng-consumerd/health-consumerd.c
b/src/bin/lttng-consumerd/health-consumerd.c
index 413df9acfb92eff3ad4e3566708c7709edd6fe24..d1478e54de9268c778efe13a85bf7a8c843c1b9f 100644
(file)
--- a/
src/bin/lttng-consumerd/health-consumerd.c
+++ b/
src/bin/lttng-consumerd/health-consumerd.c
@@
-233,6
+233,10
@@
void *thread_manage_health(void *data)
goto error;
}
goto error;
}
+ /* Perform prior memory accesses before decrementing ready */
+ cmm_smp_mb__before_uatomic_dec();
+ uatomic_dec(<tng_consumer_ready);
+
while (1) {
DBG("Health check ready");
while (1) {
DBG("Health check ready");
@@
-299,7
+303,7
@@
restart:
assert(msg.cmd == HEALTH_CMD_CHECK);
assert(msg.cmd == HEALTH_CMD_CHECK);
-
reply.ret_code = 0
;
+
memset(&reply, 0, sizeof(reply))
;
for (i = 0; i < NR_HEALTH_CONSUMERD_TYPES; i++) {
/*
* health_check_state return 0 if thread is in
for (i = 0; i < NR_HEALTH_CONSUMERD_TYPES; i++) {
/*
* health_check_state return 0 if thread is in
@@
-310,7
+314,7
@@
restart:
}
}
}
}
- DBG
2
("Health check return value %" PRIx64, reply.ret_code);
+ DBG("Health check return value %" PRIx64, reply.ret_code);
ret = send_unix_sock(new_sock, (void *) &reply, sizeof(reply));
if (ret < 0) {
ret = send_unix_sock(new_sock, (void *) &reply, sizeof(reply));
if (ret < 0) {
This page took
0.033031 seconds
and
5
git commands to generate.