Browse Source

Add a stack trace to the warning at issue with 23105.

With luck, this will help us diagnose 23105 and fix it.

I also added a stack trace to the warning right before it, since why
not.
Nick Mathewson 6 years ago
parent
commit
9c404602a0
2 changed files with 7 additions and 0 deletions
  1. 4 0
      changes/bug23105-diagnostic
  2. 3 0
      src/or/relay.c

+ 4 - 0
changes/bug23105-diagnostic

@@ -0,0 +1,4 @@
+  o Minor features (diagnostic):
+    - Add a stack trace to the bug warnings that can be logged when
+      trying to send an outgoing relay cell with n_chan == 0.
+      Diagnostic attempt for bug 23105.

+ 3 - 0
src/or/relay.c

@@ -48,6 +48,7 @@
 #define RELAY_PRIVATE
 #include "or.h"
 #include "addressmap.h"
+#include "backtrace.h"
 #include "buffers.h"
 #include "channel.h"
 #include "circpathbias.h"
@@ -511,11 +512,13 @@ circuit_package_relay_cell(cell_t *cell, circuit_t *circ,
     if (!chan) {
       log_warn(LD_BUG,"outgoing relay cell sent from %s:%d has n_chan==NULL."
                " Dropping.", filename, lineno);
+      log_backtrace(LOG_WARN,LD_BUG,"");
       return 0; /* just drop it */
     }
     if (!CIRCUIT_IS_ORIGIN(circ)) {
       log_warn(LD_BUG,"outgoing relay cell sent from %s:%d on non-origin "
                "circ. Dropping.", filename, lineno);
+      log_backtrace(LOG_WARN,LD_BUG,"");
       return 0; /* just drop it */
     }