[tor-bugs] #7350 [Tor]: Assertion chan->state == CHANNEL_STATE_OPENING || chan->state == CHANNEL_STATE_OPEN || chan->state == CHANNEL_STATE_MAINT failed

Tor Bug Tracker & Wiki blackhole at torproject.org
Sat Dec 29 16:35:08 UTC 2012


#7350: Assertion chan->state == CHANNEL_STATE_OPENING || chan->state ==
CHANNEL_STATE_OPEN || chan->state == CHANNEL_STATE_MAINT failed
-----------------------+----------------------------------------------------
    Reporter:  andrea  |       Owner:  andrea            
        Type:  defect  |      Status:  reopened          
    Priority:  major   |   Milestone:  Tor: 0.2.4.x-final
   Component:  Tor     |     Version:  Tor: 0.2.4.5-alpha
  Resolution:          |    Keywords:                    
      Parent:          |      Points:                    
Actualpoints:          |  
-----------------------+----------------------------------------------------

Comment(by fk):

 While I reproduced the issue, it turns out that deb.torproject.org
 provides PIE binaries even for the alphas, and apparently this (or
 something else?) makes gdb sad:

 {{{
 GNU gdb (GDB) 7.0.1-debian
 Copyright (C) 2009 Free Software Foundation, Inc.
 License GPLv3+: GNU GPL version 3 or later
 <http://gnu.org/licenses/gpl.html>
 This is free software: you are free to change and redistribute it.
 There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
 and "show warranty" for details.
 This GDB was configured as "i486-linux-gnu".
 For bug reporting instructions, please see:
 <http://www.gnu.org/software/gdb/bugs/>...

 warning: The current binary is a PIE (Position Independent Executable),
 which
 GDB does NOT currently support.  Most debugger features will fail if used
 in this session.

 Reading symbols from /usr/sbin/tor...Reading symbols from
 /usr/lib/debug/usr/sbin/tor...done.
 (no debugging symbols found)...done.
 [New Thread 3899]
 Core was generated by `/usr/sbin/tor --defaults-torrc /usr/share/tor/tor-
 service-defaults-torrc --hush'.
 Program terminated with signal 6, Aborted.
 #0  0xb7db3832 in ?? () from /lib/ld-linux.so.2
 (gdb) where
 #0  0xb7db3832 in ?? () from /lib/ld-linux.so.2
 #1  0xb7a8b781 in ?? ()
 #2  0xb7a8ebb2 in ?? ()
 #3  0xb7e52b50 in ?? ()
 [...]
 }}}

 Anyway, I also enabled debug logging so the exercise wasn't completely
 pointless:

 {{{
 Dec 29 16:58:55.067 [info] hibernate_go_dormant(): Closing conn type 4
 Dec 29 16:58:55.067 [debug] channel_mark_for_close(): Closing channel
 0xb55b7408 (global ID 5377) by request
 Dec 29 16:58:55.067 [debug] channel_change_state(): Changing state of
 channel 0xb55b7408 (global ID 5377) from "open" to "closing"
 Dec 29 16:58:55.067 [debug] channel_remove_from_digest_map(): Removed
 channel 0xb55b7408 (global ID 5377) from identity map in state closing (4)
 with digest B765CC9AAB8EA8E2FDD275D60433C56C0DE5645E
 Dec 29 16:58:55.067 [debug] connection_mark_for_close_internal_(): Calling
 connection_mark_for_close_internal_() on an OR conn at
 src/or/connection_or.c:1148
 Dec 29 16:58:55.067 [info] hibernate_go_dormant(): Closing conn type 4
 [...]
 Dec 29 16:58:55.085 [debug] channel_remove_from_digest_map(): Removed
 channel 0xb4ae7490 (global ID 6977) from identity map in state closing (4)
 with digest DF62347844BBFBF0A7C5ED340B96CB5A62481652
 Dec 29 16:58:55.085 [debug] connection_mark_for_close_internal_(): Calling
 connection_mark_for_close_internal_() on an OR conn at
 src/or/connection_or.c:1148
 Dec 29 16:58:55.085 [info] hibernate_go_dormant(): Closing conn type 4
 Dec 29 16:58:55.085 [debug] channel_mark_for_close(): Closing channel
 0xb3fc9178 (global ID 7066) by request
 Dec 29 16:58:55.085 [debug] channel_change_state(): Changing state of
 channel 0xb3fc9178 (global ID 7066) from "opening" to "closing"
 Dec 29 16:58:55.085 [debug] connection_mark_for_close_internal_(): Calling
 connection_mark_for_close_internal_() on an OR conn at
 src/or/connection_or.c:1148
 Dec 29 16:58:55.085 [debug] connection_edge_end(): Sending end on conn (fd
 181).
 Dec 29 16:58:55.085 [debug] relay_send_command_from_edge(): delivering 3
 cell backward.
 Dec 29 16:58:55.085 [debug] append_cell_to_circuit_queue(): Made a circuit
 active.
 Dec 29 16:58:55.085 [debug] append_cell_to_circuit_queue(): Primed a
 buffer.
 Dec 29 16:58:55.085 [debug] channel_write_packed_cell(): Writing
 packed_cell_t 0xb3b9f3d8 to channel 0xb55b7408 with global ID 5377
 Dec 29 16:58:55.085 [err] channel_write_cell_queue_entry(): Bug:
 src/or/channel.c:1681: channel_write_cell_queue_entry: Assertion
 chan->state == CHANNEL_STATE_OPENING || chan->state == CHANNEL_STATE_OPEN
 || chan->state == CHANNEL_STATE_MAINT failed; aborting.
 }}}

-- 
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/7350#comment:12>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list