[tor-bugs] #24610 [Core Tor/Tor]: assertion !(status == HS_CLIENT_FETCH_HAVE_DESC) failed

Tor Bug Tracker & Wiki blackhole at torproject.org
Thu Dec 14 13:06:34 UTC 2017


#24610: assertion !(status == HS_CLIENT_FETCH_HAVE_DESC) failed
-----------------------------+------------------------------------
 Reporter:  cypherpunks      |          Owner:  (none)
     Type:  defect           |         Status:  new
 Priority:  Medium           |      Milestone:  Tor: 0.3.2.x-final
Component:  Core Tor/Tor     |        Version:  Tor: 0.3.2.1-alpha
 Severity:  Normal           |     Resolution:
 Keywords:  prop224, tor-hs  |  Actual Points:
Parent ID:                   |         Points:
 Reviewer:                   |        Sponsor:
-----------------------------+------------------------------------

Comment (by asn):

 Both commits look reasonable to me. I think we could do a better job at
 explaining the edge-case in the first commit message because I got quite
 confused reading it (it also seems to be a different issue than the one
 described in comment:2).

 Here is the edge-case I consider:

 1) Network trouble and we end up with unreachable intro points on an HS
 desc.
 2) We start fetching new HS desc.
 3) `rend_cache_failure_clean_callback()` triggers unluckily before
 receiving new HS desc, and makes the descriptor usable again.
 4) We receive some leftover mds/consensus we asked for a few moments ago.
 This triggers `hs_client_dir_info_changed()` and we try to refetch the
 desc, but seems like the desc is now usable! Ugh bug triggers.

 The first commit should fix this scenario because now
 `can_client_refetch_desc()` will return `HS_CLIENT_FETCH_PENDING` instead
 of `HS_CLIENT_FETCH_HAVE_DESC`. I wonder if there are any other such weird
 edge-cases this patch won't fix :S

 Do we have a way to test this fix btw?

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


More information about the tor-bugs mailing list