Hi,

it seems there have been a few reports of stalled POST requests recently,
but at this point in time we still have very few information and it's hard
to draw a verdict.

After a long code review, I suspect one recent fix for the CPU spinning
issues to cause this, though I don't know if the stall issue predates this
fix (2012/12/10).

If some people experience this issue (large POST requests occasionally stall
after a few megabytes for some clients), I would be very happy if they could
test the following patch on top of 1.5-dev15 (or the latest snapshot). I
suspect that the original fix is not totally correct and may have caused
this issue, though it's hard to be certain.

Thanks in advance,
Willy

----
diff --git a/src/stream_interface.c b/src/stream_interface.c
index 1507dcc..32cd211 100644
--- a/src/stream_interface.c
+++ b/src/stream_interface.c
@@ -806,7 +806,8 @@ static void stream_int_chk_snd_conn(struct stream_interface 
*si)
                if (si->conn->ctrl)
                        fd_want_send(si->conn->t.sock.fd);
                si->conn->flags &= 
~(CO_FL_WAIT_DATA|CO_FL_WAIT_ROOM|CO_FL_WAIT_RD|CO_FL_WAIT_WR);
-               si->conn->flags |= CO_FL_CURR_WR_ENA;
+               if (fd_ev_is_set(si->conn->t.sock.fd, DIR_WR))
+                       si->conn->flags |= CO_FL_CURR_WR_ENA;
 
                if (si_conn_send_loop(si->conn) < 0) {
                        /* Write error on the file descriptor */
-----


Reply via email to