On Thu, Jan 17, 2013 at 1:19 AM, Branko Čibej <brane_at_wandisco.com> wrote:
> > 1 has not been marked as started nor been assigned but is tied to an
> > open serf issue:
> > 4274 DEFECT P3 All issues_at_subversion philip NEW
> 1.8.0 serf
> > client hangs when server crashes
>
> I reviewed this the other day and submitted
>
> https://code.google.com/p/serf/issues/detail?id=94
>
> as I believe the root cause is in Serf itself.
>
>
How about this? If the connection never resulted in a successful HTTP
response during its current lifetime (which gets zero'd in
reset_connection), then we can return an error back upstream. I think
we'll still be fine on Windows as the HUP should be detected *after* the
full response is read by serf. So, in this case, we should bug out after a
max of 2 attempts...and maybe one if OPTIONS is the first request on the
connection. -- justin
Index: outgoing.c
===================================================================
--- outgoing.c (revision 1716)
+++ outgoing.c (working copy)
@@ -1111,7 +1111,10 @@
/* The connection got reset by the server. On Windows this can
happen
when all data is read, so just cleanup the connection and open
a new one. */
- return reset_connection(conn, 1);
+ if (conn->completed_responses) {
+ return reset_connection(conn, 1);
+ }
+ return APR_EGENERAL;
}
if ((events & APR_POLLERR) != 0) {
/* We might be talking to a buggy HTTP server that doesn't
Received on 2013-01-18 12:42:39 CET