[tor-bugs] #7029 [Tor]: some stuff doesn't get freed at exit

Tor Bug Tracker & Wiki torproject-admin at torproject.org
Thu Oct 4 04:12:18 UTC 2012


#7029: some stuff doesn't get freed at exit
------------------------+---------------------------------------------------
 Reporter:  arma        |          Owner:                    
     Type:  defect      |         Status:  needs_review      
 Priority:  normal      |      Milestone:  Tor: 0.2.4.x-final
Component:  Tor         |        Version:                    
 Keywords:  tor-client  |         Parent:                    
   Points:              |   Actualpoints:                    
------------------------+---------------------------------------------------

Comment(by arma):

 Ha. I ran valgrind on moria1 for a bit, and found these gems:
 {{{
 ==511== 16 bytes in 1 blocks are still reachable in loss record 4 of 24
 ==511==    at 0x4C244E8: malloc (vg_replace_malloc.c:236)
 ==511==    by 0x2126F7: _tor_malloc (util.c:144)
 ==511==    by 0x20320E: smartlist_new (container.c:34)
 ==511==    by 0x14A271: rep_hist_add_buffer_stats (rephist.c:2399)
 ==511==    by 0x191321: circuit_free (circuitlist.c:627)
 ==511==    by 0x19154B: circuit_free_all (circuitlist.c:701)
 ==511==    by 0x118B04: tor_free_all (main.c:2456)
 ==511==    by 0x118C6B: tor_cleanup (main.c:2518)
 ==511==    by 0x1F9D68: consider_hibernation (hibernate.c:910)
 ==511==    by 0x11D2EE: second_elapsed_callback (main.c:1169)
 ==511==    by 0x52C9343: event_base_loop (in
 /usr/lib/libevent-1.4.so.2.1.3)
 ==511==    by 0x11A400: do_main_loop (main.c:1966)
 }}}

 {{{
 ==511== 2,048 bytes in 1 blocks are still reachable in loss record 21 of
 24
 ==511==    at 0x4C245E2: realloc (vg_replace_malloc.c:525)
 ==511==    by 0x2124F7: _tor_realloc (util.c:218)
 ==511==    by 0x206B7F: smartlist_add (container.c:80)
 ==511==    by 0x191321: circuit_free (circuitlist.c:627)
 ==511==    by 0x19154B: circuit_free_all (circuitlist.c:701)
 ==511==    by 0x118B04: tor_free_all (main.c:2456)
 ==511==    by 0x118C6B: tor_cleanup (main.c:2518)
 ==511==    by 0x1F9D68: consider_hibernation (hibernate.c:910)
 ==511==    by 0x11D2EE: second_elapsed_callback (main.c:1169)
 ==511==    by 0x52C9343: event_base_loop (in
 /usr/lib/libevent-1.4.so.2.1.3)
 ==511==    by 0x11A400: do_main_loop (main.c:1966)
 ==511==    by 0x11A7BC: tor_main (main.c:2672)
 }}}

 {{{
 ==511== 3,120 bytes in 130 blocks are still reachable in loss record 22 of
 24
 ==511==    at 0x4C244E8: malloc (vg_replace_malloc.c:236)
 ==511==    by 0x2126F7: _tor_malloc (util.c:144)
 ==511==    by 0x213D35: _tor_malloc_zero (util.c:170)
 ==511==    by 0x14A224: rep_hist_add_buffer_stats (rephist.c:2394)
 ==511==    by 0x191321: circuit_free (circuitlist.c:627)
 ==511==    by 0x19154B: circuit_free_all (circuitlist.c:701)
 ==511==    by 0x118B04: tor_free_all (main.c:2456)
 ==511==    by 0x118C6B: tor_cleanup (main.c:2518)
 ==511==    by 0x1F9D68: consider_hibernation (hibernate.c:910)
 ==511==    by 0x11D2EE: second_elapsed_callback (main.c:1169)
 ==511==    by 0x52C9343: event_base_loop (in
 /usr/lib/libevent-1.4.so.2.1.3)
 ==511==    by 0x11A400: do_main_loop (main.c:1966)
 }}}

 It would appear that we have some dependencies on what order we free stuff
 on exit.

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


More information about the tor-bugs mailing list