diff options
Diffstat (limited to 'src/or/scheduler_kist.c')
-rw-r--r-- | src/or/scheduler_kist.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/or/scheduler_kist.c b/src/or/scheduler_kist.c index fea92705d4..3d8f553ac2 100644 --- a/src/or/scheduler_kist.c +++ b/src/or/scheduler_kist.c @@ -606,9 +606,12 @@ kist_scheduler_run(void) * fails leading to the channel to be closed which triggers a release * and free its entry in the socket table. And because of a engineering * design issue, the error is not propagated back so we don't get an - * error at this poin. So before we continue, make sure the channel is + * error at this point. So before we continue, make sure the channel is * open and if not just ignore it. See #23751. */ if (!CHANNEL_IS_OPEN(chan)) { + /* Channel isn't open so we put it back in IDLE mode. It is either + * renegotiating its TLS session or about to be released. */ + chan->scheduler_state = SCHED_CHAN_IDLE; continue; } /* flush_result has the # cells flushed */ |