[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: [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.
#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:
| needs_review
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: asn | Sponsor:
------------------------------------------------+--------------------------
Changes (by dgoulet):
* status: needs_revision => needs_review
* reviewer: => asn
Comment:
Replying to [comment:16 asn]:
> Two last things:
> - Does the code that we added in this ticket allow the service to
recover from this issue where it has no descriptors? That is, will it ever
rebuild the needed descriptors and rotate them gracefully, or will it get
permanently stuck in a broken state? My understanding from reading the
code a bit is that the latter case will happen. Do we care about the
latter if it happens?
I think it will get stuck if `current` is NULL and `next` is not. We won't
be able to rotate nor build a current one if no rotation.
If both are NULL, it won't get stuck, new desc will be created. If only
next is NULL, it won't get stuck as it will be built just after.
Tbh, having a `current == NULL`, which I don't think is possible without
also having a `next == NULL`, we have a very bad code flow issue. I think
at that point, we might want the service to stop working properly so the
operator can notice the BUG() and tell us. I've personally never ever seen
this so if it happens (like this ticket maybe), it should be rare or if
not, we'll catch it soon enough.
> - In `rotate_all_descriptors()` let's add the `BUG` check inside
`should_rotate_descriptors()`. I think that's conceptually the right place
to do any check wrt rotating descriptors.
See fixup commit: `4cad1376c6`
Notice that I changed a bit the log message to print the desc pointer as
in we do want to know which desc are NULL.
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/25306#comment:17>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
_______________________________________________
tor-bugs mailing list
tor-bugs@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-bugs