[tor-bugs] #25306 [Core Tor/Tor]: tor_assertion_failed_(): Bug: ../src/or/hs_service.c:1985: rotate_all_descriptors: Assertion service->desc_current failed; aborting.
Tor Bug Tracker & Wiki
blackhole at torproject.org
Fri Feb 23 20:06:04 UTC 2018
#25306: tor_assertion_failed_(): Bug: ../src/or/hs_service.c:1985:
rotate_all_descriptors: Assertion service->desc_current failed; aborting.
------------------------------------------------+--------------------------
Reporter: cypherpunks | Owner: dgoulet
Type: defect | Status: accepted
Priority: Medium | Milestone: Tor:
| 0.3.3.x-final
Component: Core Tor/Tor | Version: Tor:
| 0.3.3.2-alpha
Severity: Normal | Resolution:
Keywords: tor-hs crash 033-must 032-backport | Actual Points:
Parent ID: | Points:
Reviewer: | Sponsor:
------------------------------------------------+--------------------------
Comment (by dgoulet):
So I was able to recreate this in the lab. Quick unit test that hits the
asserts(). Unfortunately, there are unknowns on how `desc_current` can end
up NULL after a suspend but still, here are my findings:
If the service `next_rotation_time` ends up smaller than the `valid_after`
time of the consensus, which usually it can't because when we do a
rotation, we set it to the next time which is always in the future (after
valid_after).
However, when going in suspend and coming back to life, tor gets a new
consensus and thus the valid_after time is bigger than the
`next_rotation_time`. Which means that tor will allow the service to
rotate the descriptors going straight into those asserts().
So how can `desc_current` be NULL or even `desc_next`? For a regular
service, I have no idea... I think it could be likely with `ADD_ONION` but
the fact that we set the rotation time using the consensus and do it
_before_ we build descriptors, we should never hit the asserts() because
that time will always be smaller than `valid_after` so we won't allowed to
rotate and then just after we'll build the descriptors.
Puzzling...
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/25306#comment:8>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
More information about the tor-bugs
mailing list