Opened 2 years ago

Closed 2 years ago

#23687 closed defect (not a bug)

kist: Channel in waiting_to_write goes missing until a destroy cell

Reported by: dgoulet Owned by:
Priority: High Milestone: Tor: 0.3.2.x-final
Component: Core Tor/Tor Version:
Severity: Normal Keywords: tor-sched, kist
Cc: pastly Actual Points:
Parent ID: Points:
Reviewer: Sponsor:

Description

Here is the gist with some logs I added to tor:

Sep 28 20:03:09.472 [info] kist_scheduler_run(): Case 4: channel 471. Out queue len: 0, in queue len: 0, cmux queue len: 15. Is there more to flush: yes. Channel state 'open' (sched: 3)
Sep 28 20:03:09.472 [info] channel_write_cell_queue_entry(): Channel 471 cell sent. cmux queue len: 15
Sep 28 20:03:09.483 [info] kist_scheduler_run(): Case 3: channel 471. Out queue len: 0, in queue len: 0, cmux queue len: 14. Is there more to flush: yes. Channel state 'open' (sched: 2)
Sep 28 20:03:09.484 [info] channel_write_to_kernel(): Writing 0 bytes to kernel for chan 471
[...]
Sep 28 20:04:13.738 [info] circuitmux_append_destroy_cell(): Destroy cell on channel 471
Sep 28 20:04:13.738 [info] channel_write_cell_queue_entry(): Channel 471 cell sent. cmux queue len: 0

Notice the 60+ seconds gap from the channel going to SCHED_CHAN_WAITING_TO_WRITE (sched: 2) and then nothing until a destroy cell happens. Then suddenly at that point, no more cells in the cmux queue nor any calls to the flush function.

So questions are:

  1. Why the channel in waiting_to_write never got scheduled again?
  1. Where are those cells from the cmux queue? Is something else in tor moving those to the outbuf?

Child Tickets

Change History (1)

comment:1 Changed 2 years ago by dgoulet

Resolution: not a bug
Status: newclosed

This has been fixed by #23676 afterall. The proposed patch had an issue that was triggering this issue.

Note: See TracTickets for help on using tickets.