|
@@ -598,6 +598,15 @@ kist_scheduler_run(void)
|
|
|
if (socket_can_write(&socket_table, chan)) {
|
|
|
|
|
|
flush_result = (int)channel_flush_some_cells(chan, 1);
|
|
|
+
|
|
|
+ * 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
|
|
|
+ * open and if not just ignore it. See #23751. */
|
|
|
+ if (!CHANNEL_IS_OPEN(chan)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
|
|
|
if (flush_result > 0) {
|
|
|
update_socket_written(&socket_table, chan, flush_result *
|