Fix: create/destroy a splice_pipe per stream
authorJulien Desfossez <jdesfossez@efficios.com>
Wed, 12 Nov 2014 23:36:17 +0000 (18:36 -0500)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Mon, 17 Nov 2014 18:42:55 +0000 (13:42 -0500)
commit6f2b2a45d4fc76e5aed178f27b5277101847ad9d
tree3689fa6682cf6e96d2ef3916208485695fd56604
parent723af4b44ae4f4217efc0d4a1e879dc76be9c9a3
Fix: create/destroy a splice_pipe per stream

We had a per-thread splice_pipe (one for data and one for metadata), but
in case of error, we would end up filling the write side of the pipe and
never emptying it. This could lead to leaking data from one session to
the other, but also to stall the consumer trying to splice into a full
pipe.

Now we create a splice_pipe per-stream, so it is destroyed when the
session is destroyed.

Fixes: #726
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
src/common/consumer-stream.c
src/common/consumer.c
src/common/consumer.h
src/common/kernel-consumer/kernel-consumer.c
This page took 0.025533 seconds and 4 git commands to generate.