|
@@ -2766,6 +2766,10 @@ channel_free_list(smartlist_t *channels, int mark_for_close)
|
|
|
"in state %s (%d)",
|
|
|
curr, U64_PRINTF_ARG(curr->global_identifier),
|
|
|
channel_state_to_string(curr->state), curr->state);
|
|
|
+ /* Detach circuits early so they can find the channel */
|
|
|
+ if (curr->cmux) {
|
|
|
+ circuitmux_detach_all_circuits(curr->cmux);
|
|
|
+ }
|
|
|
channel_unregister(curr);
|
|
|
if (mark_for_close) {
|
|
|
if (!(curr->state == CHANNEL_STATE_CLOSING ||
|