You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by cm...@apache.org on 2012/11/20 19:34:34 UTC

svn commit: r1411779 - in /subversion/trunk/subversion/libsvn_ra_serf: ra_serf.h replay.c serf.c update.c util.c

Author: cmpilato
Date: Tue Nov 20 18:34:33 2012
New Revision: 1411779

URL: http://svn.apache.org/viewvc?rev=1411779&view=rev
Log:
Use a 64-bit variable (rather than a 32-bit one) to hold ra_serf
timeout values expressed in microseconds.  Overflow is uncool.

. o O ( Maybe this time I won't break the build... )

* subversion/libsvn_ra_serf/serf.c
  (DEFAULT_HTTP_TIMEOUT): Set to 5 minutes (instead of 60!).
  (load_config): Simplify timeout logic a bit.

* subversion/libsvn_ra_serf/ra_serf.h
  (struct svn_ra_serf__session_t): Change 'timeout' from an
    apr_short_interval_time_t to an apr_interval_time_t.

* subversion/libsvn_ra_serf/replay.c
  (svn_ra_serf__replay_range): Change 'waittime_left' from an
    apr_short_interval_time_t to an apr_interval_time_t.

* subversion/libsvn_ra_serf/update.c
  (finish_report): Change 'waittime_left' from an
    apr_short_interval_time_t to an apr_interval_time_t.

* subversion/libsvn_ra_serf/util.c
  (svn_ra_serf__context_run_wait): Change 'waittime_left' from an
    apr_short_interval_time_t to an apr_interval_time_t.

Modified:
    subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h
    subversion/trunk/subversion/libsvn_ra_serf/replay.c
    subversion/trunk/subversion/libsvn_ra_serf/serf.c
    subversion/trunk/subversion/libsvn_ra_serf/update.c
    subversion/trunk/subversion/libsvn_ra_serf/util.c

Modified: subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h?rev=1411779&r1=1411778&r2=1411779&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h Tue Nov 20 18:34:33 2012
@@ -189,7 +189,7 @@ struct svn_ra_serf__session_t {
   const char *uuid;
 
   /* Connection timeout value */
-  apr_short_interval_time_t timeout;
+  apr_interval_time_t timeout;
 
   /* HTTPv1 flags */
   svn_tristate_t supports_deadprop_count;

Modified: subversion/trunk/subversion/libsvn_ra_serf/replay.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/replay.c?rev=1411779&r1=1411778&r2=1411779&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/replay.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/replay.c Tue Nov 20 18:34:33 2012
@@ -732,7 +732,7 @@ svn_ra_serf__replay_range(svn_ra_session
   svn_revnum_t rev = start_revision;
   const char *report_target;
   int active_reports = 0;
-  apr_short_interval_time_t waittime_left = session->timeout;
+  apr_interval_time_t waittime_left = session->timeout;
 
   SVN_ERR(svn_ra_serf__report_resource(&report_target, session, NULL, pool));
 

Modified: subversion/trunk/subversion/libsvn_ra_serf/serf.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/serf.c?rev=1411779&r1=1411778&r2=1411779&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/serf.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/serf.c Tue Nov 20 18:34:33 2012
@@ -131,7 +131,11 @@ load_http_auth_types(apr_pool_t *pool, s
 
   return SVN_NO_ERROR;
 }
-#define DEFAULT_HTTP_TIMEOUT 3600
+
+/* Default HTTP timeout (in seconds); overridden by the 'http-timeout'
+   runtime configuration variable. */
+#define DEFAULT_HTTP_TIMEOUT 600
+
 static svn_error_t *
 load_config(svn_ra_serf__session_t *session,
             apr_hash_t *config_hash,
@@ -253,6 +257,7 @@ load_config(svn_ra_serf__session_t *sess
     }
 
   /* Parse the connection timeout value, if any. */
+  session->timeout = apr_time_from_sec(DEFAULT_HTTP_TIMEOUT);
   if (timeout_str)
     {
       char *endstr;
@@ -267,12 +272,6 @@ load_config(svn_ra_serf__session_t *sess
                                 _("Invalid config: negative timeout value"));
       session->timeout = apr_time_from_sec(timeout);
     }
-  else
-    session->timeout = apr_time_from_sec(DEFAULT_HTTP_TIMEOUT);
-
-  if (session->timeout < 0) /* Always true for DEFAULT_HTTP_TIMEOUT */
-    session->timeout = apr_time_from_sec(600); /* 10 min */
-
   SVN_ERR_ASSERT(session->timeout > 0);
 
   /* Convert the proxy port value, if any. */

Modified: subversion/trunk/subversion/libsvn_ra_serf/update.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/update.c?rev=1411779&r1=1411778&r2=1411779&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/update.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/update.c Tue Nov 20 18:34:33 2012
@@ -2562,7 +2562,7 @@ finish_report(void *report_baton,
   svn_stringbuf_t *buf = NULL;
   apr_pool_t *iterpool = svn_pool_create(pool);
   svn_error_t *err;
-  apr_short_interval_time_t waittime_left = sess->timeout;
+  apr_interval_time_t waittime_left = sess->timeout;
 
   svn_xml_make_close_tag(&buf, iterpool, "S:update-report");
   SVN_ERR(svn_io_file_write_full(report->body_file, buf->data, buf->len,

Modified: subversion/trunk/subversion/libsvn_ra_serf/util.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/util.c?rev=1411779&r1=1411778&r2=1411779&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/util.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/util.c Tue Nov 20 18:34:33 2012
@@ -718,7 +718,7 @@ svn_ra_serf__context_run_wait(svn_boolea
                               apr_pool_t *scratch_pool)
 {
   apr_pool_t *iterpool;
-  apr_short_interval_time_t waittime_left = sess->timeout;
+  apr_interval_time_t waittime_left = sess->timeout;
   
   assert(sess->pending_error == SVN_NO_ERROR);
 



Re: svn commit: r1411779 - in /subversion/trunk/subversion/libsvn_ra_serf: ra_serf.h replay.c serf.c update.c util.c

Posted by Julian Foad <ju...@btopenworld.com>.
> Author: cmpilato

> Date: Tue Nov 20 18:34:33 2012
> New Revision: 1411779
> 
> URL: http://svn.apache.org/viewvc?rev=1411779&view=rev
> Log:
> Use a 64-bit variable (rather than a 32-bit one) to hold ra_serf
> timeout values expressed in microseconds.  Overflow is uncool.

Mention here that you also changed the default timeout ...

> 
> . o O ( Maybe this time I won't break the build... )
> 
> * subversion/libsvn_ra_serf/serf.c
>   (DEFAULT_HTTP_TIMEOUT): Set to 5 minutes (instead of 60!).

... but in fact you changed it to 10 mins not 5.

- Julian

>   (load_config): Simplify timeout logic a bit.
> 
> * subversion/libsvn_ra_serf/ra_serf.h
>   (struct svn_ra_serf__session_t): Change 'timeout' from an
>     apr_short_interval_time_t to an apr_interval_time_t.
> 
> * subversion/libsvn_ra_serf/replay.c
>   (svn_ra_serf__replay_range): Change 'waittime_left' from an
>     apr_short_interval_time_t to an apr_interval_time_t.
> 
> * subversion/libsvn_ra_serf/update.c
>   (finish_report): Change 'waittime_left' from an
>     apr_short_interval_time_t to an apr_interval_time_t.
> 
> * subversion/libsvn_ra_serf/util.c
>   (svn_ra_serf__context_run_wait): Change 'waittime_left' from an
>     apr_short_interval_time_t to an apr_interval_time_t.

[...]
> -#define DEFAULT_HTTP_TIMEOUT 3600
> +
> +/* Default HTTP timeout (in seconds); overridden by the 'http-timeout'
> +   runtime configuration variable. */
> +#define DEFAULT_HTTP_TIMEOUT 600