[tor-bugs] #7164 [Tor]: microdesc.c:378: Bug: microdesc_free() called, but md was still referenced 1 node(s); held_by_nodes == 1

Tor Bug Tracker & Wiki blackhole at torproject.org
Thu Mar 27 02:08:04 UTC 2014


#7164: microdesc.c:378: Bug: microdesc_free() called, but md was still referenced
1 node(s); held_by_nodes == 1
------------------------+-------------------------------------
     Reporter:  jaj123  |      Owner:
         Type:  defect  |     Status:  needs_review
     Priority:  major   |  Milestone:  Tor: 0.2.5.x-final
    Component:  Tor     |    Version:  Tor: 0.2.4.19
   Resolution:          |   Keywords:  tor-client 024-backport
Actual Points:          |  Parent ID:
       Points:          |
------------------------+-------------------------------------

Comment (by nickm):

 >The test that would match the old behavior would be just if (is_old),
 surely?

 The old behavior was to call "microdesc_free()" if the microdescriptor was
 old... and then the warning would be produced because held_by_nodes was
 nonzero, and we wouldn't free the thing.  The change here has the old
 behavior in the non-warning case, and the new behavior in the case where
 we would have given a warning.

 > Also, the wording of the log messages ("Microdescriptor seemed very old
 (last listed %d hours ago vs %d hour cutoff), but is still marked as being
 held by %d node(s). I found %d node(s) holding it.") suggests you only
 want to emit for old microdescriptors, but the enclosing test is just if
 (held_by_nodes) rather than if (is_old && held_by_nodes). Am I missing
 something here?

 Oops.  Yeah, adding a fixup commit. Better now?

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


More information about the tor-bugs mailing list