diff --git a/changes/bug23105-diagnostic b/changes/bug23105-diagnostic new file mode 100644 index 000000000..8ba4931e3 --- /dev/null +++ b/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. diff --git a/src/or/relay.c b/src/or/relay.c index 0ff53ed5e..cb1a0692b 100644 --- a/src/or/relay.c +++ b/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 */ }