From c5ee2ceca9e06768f1e1c320a73dc1fb05525362 Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Tue, 7 Sep 2021 14:31:02 +0200 Subject: [PATCH] Revert "BUG/MINOR: stream-int: Don't block reads in si_update_rx() if chn may receive" This reverts commit e0dec4b7b258101f6d5faa15234103a45c16f0f8. At first glance, channel_is_empty() was used on purpose in si_update_rx(), because of the HTX ("b3e0de46c" MEDIUM: stream-int: Rely only on SI_FL_WAIT_ROOM to stop data receipt). It is not pretty clear for now why channel_may_recv() sould not be used here but this change introduce a possible infinite loop with the stats applet. So, it is safer to revert the patch, waiting for a better understanding of the probelm. This means the abortonclose option will be broken again on the 2.3 and lower versions. This patch should fix the issue #1360. It must be backported as far as 2.0. (cherry picked from commit b7308f00cb03e5accd2f6092bf09fc2ac1360ff9) Signed-off-by: Christopher Faulet (cherry picked from commit 62fc11cb2da250f6c70ea3a1b3af767d8d0a9b2c) Signed-off-by: Christopher Faulet --- src/stream_interface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/stream_interface.c b/src/stream_interface.c index 47c36d9..05978a5 100644 --- a/src/stream_interface.c +++ b/src/stream_interface.c @@ -825,7 +825,7 @@ void si_update_rx(struct stream_interface *si) else si_rx_chan_rdy(si); - if (!channel_may_recv(ic)) { + if (!channel_is_empty(ic)) { /* stop reading, imposed by channel's policy or contents */ si_rx_room_blk(si); } -- 1.7.10.4