kist on 0.3.2.1-alpha-dev beats its head against a wall trying to flush a conn that's closed
moria1 running "0.3.2.1-alpha-dev (git-a1f31c0671c82f95)" last wrote to its info-level log this morning at 05:15: ``` Sep 27 05:15:09.482 [info] connection_close_immediate(): fd 334, type OR, state open, 146672 bytes on outbuf. ``` That was 9 hours ago. The process is still alive, and it's using 100% cpu. I did a gdb attach, and it looks like it is doing...stuff. Here are three snapshots: ``` #0 channel_flush_some_cells (chan=0x7f2e04c84c80, num_cells=1) at src/or/channel.c:2355 #1 0x00007f2df60bd915 in kist_scheduler_run () at src/or/scheduler_kist.c:589 #2 0x00007f2df60bb7e2 in scheduler_evt_callback (fd=<value optimized out>,· events=<value optimized out>, arg=<value optimized out>) at src/or/scheduler.c:215 #3 0x00007f2df6201040 in event_process_active_single_queue () #4 0x00007f2df6201610 in event_process_active () #5 0x00007f2df6201d74 in event_base_loop () #6 0x00007f2df60530dd in run_main_loop_once () at src/or/main.c:2631 #7 run_main_loop_until_done () at src/or/main.c:2685 #8 do_main_loop () at src/or/main.c:2598 #9 0x00007f2df605421d in tor_main (argc=<value optimized out>,· argv=<value optimized out>) at src/or/main.c:3780 #10 0x00007f2df604fd99 in main (argc=<value optimized out>,· argv=<value optimized out>) at src/or/tor_main.c:34 ``` ``` #0 channel_more_to_flush (chan=0x7f2e04c84c80) at src/or/channel.c:2609 #1 0x00007f2df60bd868 in kist_scheduler_run () at src/or/scheduler_kist.c:600 #2 0x00007f2df60bb7e2 in scheduler_evt_callback (fd=<value optimized out>,· events=<value optimized out>, arg=<value optimized out>) at src/or/scheduler.c:215 #3 0x00007f2df6201040 in event_process_active_single_queue () #4 0x00007f2df6201610 in event_process_active () #5 0x00007f2df6201d74 in event_base_loop () #6 0x00007f2df60530dd in run_main_loop_once () at src/or/main.c:2631 #7 run_main_loop_until_done () at src/or/main.c:2685 #8 do_main_loop () at src/or/main.c:2598 #9 0x00007f2df605421d in tor_main (argc=<value optimized out>,· argv=<value optimized out>) at src/or/main.c:3780 #10 0x00007f2df604fd99 in main (argc=<value optimized out>,· argv=<value optimized out>) at src/or/tor_main.c:34 ``` ``` #0 0x00007f2df60bd42e in socket_table_s_HT_FIND_P_ ( chan=<value optimized out>, table=0x7f2df64f0ee0) at src/or/scheduler_kist.c:50 #1 socket_table_s_HT_FIND (chan=<value optimized out>, table=0x7f2df64f0ee0) at src/or/scheduler_kist.c:51 #2 socket_table_search (chan=<value optimized out>, table=0x7f2df64f0ee0) at src/or/scheduler_kist.c:168 #3 0x00007f2df60bd4a9 in socket_can_write (chan=<value optimized out>, table=0x7f2df64f0ee0) at src/or/scheduler_kist.c:372 #4 0x00007f2df60bd968 in kist_scheduler_run () at src/or/scheduler_kist.c:630 #5 0x00007f2df60bb7e2 in scheduler_evt_callback (fd=<value optimized out>, events=<value optimized out>, arg=<value optimized out>) at src/or/scheduler.c:215 #6 0x00007f2df6201040 in event_process_active_single_queue () #7 0x00007f2df6201610 in event_process_active () #8 0x00007f2df6201d74 in event_base_loop () #9 0x00007f2df60530dd in run_main_loop_once () at src/or/main.c:2631 #10 run_main_loop_until_done () at src/or/main.c:2685 #11 do_main_loop () at src/or/main.c:2598 #12 0x00007f2df605421d in tor_main (argc=<value optimized out>, argv=<value optimized out>) at src/or/main.c:3780 #13 0x00007f2df604fd99 in main (argc=<value optimized out>, argv=<value optimized out>) at src/or/tor_main.c:34 ``` David suggested that I try `strace -f -p PID -o /tmp/strace.log`, and I ran it for 30 seconds or so, and it produced this file: ``` 13376 futex(0x7f2dff2de65c, FUTEX_WAIT_PRIVATE, 755787, NULL <unfinished ...> 13375 futex(0x7f2dff2de65c, FUTEX_WAIT_PRIVATE, 755787, NULL <unfinished ...> 13374 futex(0x7f2dff2de65c, FUTEX_WAIT_PRIVATE, 755787, NULL <unfinished ...> 13373 futex(0x7f2dff2de65c, FUTEX_WAIT_PRIVATE, 755787, NULL <unfinished ...> 13372 futex(0x7f2dff2de65c, FUTEX_WAIT_PRIVATE, 755787, NULL <unfinished ...> 13371 futex(0x7f2dff2de65c, FUTEX_WAIT_PRIVATE, 755787, NULL <unfinished ...> 13370 futex(0x7f2dff2de65c, FUTEX_WAIT_PRIVATE, 755787, NULL <unfinished ...> 13369 futex(0x7f2dff2de65c, FUTEX_WAIT_PRIVATE, 755787, NULL <unfinished ...> 13368 futex(0x7f2dff2de65c, FUTEX_WAIT_PRIVATE, 755787, NULL <detached ...> ```
issue