[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[or-cvs] r13752: Add better warnings for the error that produced bug 614, and (in tor/trunk: . src/or)



Author: nickm
Date: 2008-02-27 14:19:34 -0500 (Wed, 27 Feb 2008)
New Revision: 13752

Modified:
   tor/trunk/
   tor/trunk/ChangeLog
   tor/trunk/src/or/connection.c
Log:
 r18462@catbus:  nickm | 2008-02-27 14:15:57 -0500
 Add better warnings for the error that produced bug 614, and downgrade from a tor_assert() to a tor_fragile_assert().



Property changes on: tor/trunk
___________________________________________________________________
 svk:merge ticket from /tor/trunk [r18462] on 8246c3cf-6607-4228-993b-4d95d33730f1

Modified: tor/trunk/ChangeLog
===================================================================
--- tor/trunk/ChangeLog	2008-02-27 08:10:28 UTC (rev 13751)
+++ tor/trunk/ChangeLog	2008-02-27 19:19:34 UTC (rev 13752)
@@ -1,4 +1,8 @@
-Changes in version 0.2.0.21-rc - 2008-0?-??
+Changes in version 0.2.1.1-alpha - 2008-??-??
+  o Minor bugfixes:
+    - Downgrade assert in connection_buckets_decrement() to a log message.
+      This may help us solve bug 614, and in any case will make its symptoms
+      less severe.  Bugfix on 0.2.0.20-rc.
 
 
 Changes in version 0.2.0.20-rc - 2008-02-24

Modified: tor/trunk/src/or/connection.c
===================================================================
--- tor/trunk/src/or/connection.c	2008-02-27 08:10:28 UTC (rev 13751)
+++ tor/trunk/src/or/connection.c	2008-02-27 19:19:34 UTC (rev 13752)
@@ -1576,8 +1576,16 @@
 {
   if (!connection_is_rate_limited(conn))
     return; /* local IPs are free */
-  tor_assert(num_read < INT_MAX);
-  tor_assert(num_written < INT_MAX);
+  if (num_written >= INT_MAX || num_read >= INT_MAX) {
+    log_err(LD_BUG, "Value out of range. num_read=%lu, num_written=%lu, "
+             "connection type=%s, state=%s",
+             (unsigned long)num_read, (unsigned long)num_written,
+             conn_type_to_string(conn->type),
+             conn_state_to_string(conn->type, conn->state));
+    if (num_written >= INT_MAX) num_written = 1;
+    if (num_read >= INT_MAX) num_read = 1;
+    tor_fragile_assert();
+  }
 
   if (num_read > 0)
     rep_hist_note_bytes_read(num_read, now);