[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

[PATCH] ra_serf and APR_EAGAIN handling

From: Justin Erenkrantz <justin_at_erenkrantz.com>
Date: Tue, 12 Jun 2012 10:51:45 +0200

It seems we've tweaked how we handle EAGAIN inside of ra_serf and are
treating it as a critical error.

Right now, what Johan is seeing with his anti-virus software is that
we very often receive EAGAIN from the sockets. However, we're
treating EAGAIN as a fatal error inside of
svn_ra_serf__context_run_wait(). I believe we ought to be handling
EAGAIN specifically and just (re)run the serf context loop again.

The patch below fixes Johan's situation...but, I'd appreciate some
eyes on it before committing. -- justin

Index: subversion/libsvn_ra_serf/util.c
===================================================================
--- subversion/libsvn_ra_serf/util.c (revision 1349176)
+++ subversion/libsvn_ra_serf/util.c (working copy)
@@ -734,6 +734,13 @@ svn_ra_serf__context_run_wait(svn_boolean_t *done,
                                   _("Connection timed out"));
         }

+ if (err && APR_STATUS_IS_EAGAIN(err->apr_err))
+ {
+ svn_error_clear(err);
+ err = SVN_NO_ERROR;
+ status = APR_SUCCESS;
+ }
+
       SVN_ERR(err);
       if (status)
         {
Received on 2012-06-12 10:52:19 CEST

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.