[lttng-dev] [PATCH lttng-tools 5/8] Fix hang in thread_rotation when using compat-poll
Yannick Lamarre
ylamarre at efficios.com
Tue Mar 19 17:17:32 EDT 2019
The poll flavor of the lttng_poll api requires the caller to verify
which of the fd has really waken the thread from wait. This
verification was missing and a blocking read was made on an empty fd.
Signed-off-by: Yannick Lamarre <ylamarre at efficios.com>
---
src/bin/lttng-sessiond/rotation-thread.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/bin/lttng-sessiond/rotation-thread.c b/src/bin/lttng-sessiond/rotation-thread.c
index 6669372d..b86b1668 100644
--- a/src/bin/lttng-sessiond/rotation-thread.c
+++ b/src/bin/lttng-sessiond/rotation-thread.c
@@ -974,6 +974,10 @@ void *thread_rotation(void *data)
int fd = LTTNG_POLL_GETFD(&thread.events, i);
uint32_t revents = LTTNG_POLL_GETEV(&thread.events, i);
+ if (!revents) {
+ /* No activity for this FD (poll implementation). */
+ continue;
+ }
DBG("[rotation-thread] Handling fd (%i) activity (%u)",
fd, revents);
--
2.11.0
More information about the lttng-dev
mailing list