All of lore.kernel.org
 help / color / mirror / Atom feed
* [LTTNG-TOOLS 2.3 PATCH 1/2] Fix: return code of get_subbuff on metadata stream
@ 2013-08-04 18:46 Julien Desfossez
  0 siblings, 0 replies; 4+ messages in thread
From: Julien Desfossez @ 2013-08-04 18:46 UTC (permalink / raw)
  To: dgoulet, mathieu.desnoyers; +Cc: lttng-dev, Julien Desfossez

If no metadata is available on the kernel metadata stream when we
do a get_subbuff, the kernel returns -EPERM, the consumer was not
checking for this return code and closed the stream prematurely. It
worked if no new metadata was added during the session.

Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
---
 src/common/consumer.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/common/consumer.c b/src/common/consumer.c
index 4b657f3..a070f36 100644
--- a/src/common/consumer.c
+++ b/src/common/consumer.c
@@ -2288,7 +2288,8 @@ restart:
 				} while (len > 0);
 
 				/* It's ok to have an unavailable sub-buffer */
-				if (len < 0 && len != -EAGAIN && len != -ENODATA) {
+				if (len < 0 && len != -EAGAIN && len != -ENODATA &&
+						len != -EPERM) {
 					/* Clean up stream from consumer and free it. */
 					lttng_poll_del(&events, stream->wait_fd);
 					consumer_del_metadata_stream(stream, metadata_ht);
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 4+ messages in thread
[parent not found: <1375641986-2278-1-git-send-email-jdesfossez@efficios.com>]
* [LTTNG-TOOLS 2.3 PATCH 1/2] Fix: return code of get_subbuff on metadata stream
@ 2013-08-05 15:27 Julien Desfossez
  0 siblings, 0 replies; 4+ messages in thread
From: Julien Desfossez @ 2013-08-05 15:27 UTC (permalink / raw)
  To: dgoulet, mathieu.desnoyers; +Cc: lttng-dev, Julien Desfossez

On error, the ioctl kernctl_get_next_subbuf returns -1 and sets errno to
a meaningful value but we were ignoring it. It was causing
lttng_kconsumer_read_subbuffer to return -1 (error) instead of -EAGAIN
(normal).

Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
---
 src/common/kernel-consumer/kernel-consumer.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/common/kernel-consumer/kernel-consumer.c b/src/common/kernel-consumer/kernel-consumer.c
index 3086abe..f8978d2 100644
--- a/src/common/kernel-consumer/kernel-consumer.c
+++ b/src/common/kernel-consumer/kernel-consumer.c
@@ -851,7 +851,7 @@ ssize_t lttng_kconsumer_read_subbuffer(struct lttng_consumer_stream *stream,
 	/* Get the next subbuffer */
 	err = kernctl_get_next_subbuf(infd);
 	if (err != 0) {
-		ret = err;
+		ret = -errno;
 		/*
 		 * This is a debug message even for single-threaded consumer,
 		 * because poll() have more relaxed criterions than get subbuf,
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 4+ messages in thread
[parent not found: <1375716439-24407-1-git-send-email-jdesfossez@efficios.com>]

end of thread, other threads:[~2013-08-05 19:07 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-08-04 18:46 [LTTNG-TOOLS 2.3 PATCH 1/2] Fix: return code of get_subbuff on metadata stream Julien Desfossez
     [not found] <1375641986-2278-1-git-send-email-jdesfossez@efficios.com>
2013-08-04 20:34 ` Mathieu Desnoyers
2013-08-05 15:27 Julien Desfossez
     [not found] <1375716439-24407-1-git-send-email-jdesfossez@efficios.com>
2013-08-05 19:06 ` Mathieu Desnoyers

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.