Bug #40842: Additional diagnostics

Just in case there are other instances hiding in the maze.
This commit is contained in:
Mike Perry 2023-08-25 22:43:14 +00:00
parent fd6f098c9d
commit 7666dd777a
2 changed files with 20 additions and 0 deletions

View File

@ -49,6 +49,20 @@ circuit_get_package_window(circuit_t *circ,
/* If conflux has no circuit to send on, the package window is 0. */
if (!circ) {
/* Bug #40842: Additional diagnostics for other potential cases */
if (!orig_circ->conflux->curr_leg) {
if (orig_circ->marked_for_close) {
log_warn(LD_BUG, "Conflux has no circuit to send on. "
"Circuit %p idx %d marked at line %s:%d",
orig_circ, orig_circ->global_circuitlist_idx,
orig_circ->marked_for_close_file,
orig_circ->marked_for_close);
} else {
log_warn(LD_BUG, "Conflux has no circuit to send on. "
"Circuit %p idx %d not marked for close.",
orig_circ, orig_circ->global_circuitlist_idx);
}
}
return 0;
}
@ -83,6 +97,10 @@ conflux_can_send(conflux_t *cfx)
if (send_circ) {
return true;
} else {
if (BUG(!cfx->in_full_teardown && !cfx->curr_leg)) {
log_fn(LOG_WARN,
LD_BUG, "Conflux has no current circuit to send on. ");
}
return false;
}
}

View File

@ -641,6 +641,8 @@ relay_send_command_from_edge_,(streamid_t stream_id, circuit_t *orig_circ,
if (BUG(!circ)) {
log_warn(LD_BUG, "No circuit to send for conflux for relay command %d, "
"called from %s:%d", relay_command, filename, lineno);
conflux_log_set(LOG_WARN, orig_circ->conflux,
CIRCUIT_IS_ORIGIN(orig_circ));
circ = orig_circ;
} else {
/* Conflux circuits always send multiplexed relay commands to