Procházet zdrojové kódy

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().


svn:r13752

Nick Mathewson před 17 roky
rodič
revize
eefe2a3562
2 změnil soubory, kde provedl 15 přidání a 3 odebrání
  1. 5 1
      ChangeLog
  2. 10 2
      src/or/connection.c

+ 5 - 1
ChangeLog

@@ -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

+ 10 - 2
src/or/connection.c

@@ -1576,8 +1576,16 @@ connection_buckets_decrement(connection_t *conn, time_t now,
 {
   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);