[tor-bugs] #21054 [Core Tor/Tor]: hs: BUG() is triggered with ephemeral service on config reload

Tor Bug Tracker & Wiki blackhole at torproject.org
Mon Jan 9 14:25:58 UTC 2017


#21054: hs: BUG() is triggered with ephemeral service on config reload
-------------------------------------------------+-------------------------
 Reporter:  dgoulet                              |          Owner:  dgoulet
     Type:  defect                               |         Status:
                                                 |  needs_review
 Priority:  High                                 |      Milestone:  Tor:
                                                 |  0.3.0.x-final
Component:  Core Tor/Tor                         |        Version:  Tor:
                                                 |  0.3.0.1-alpha
 Severity:  Normal                               |     Resolution:
 Keywords:  tor-hs, prop224, refactoring,        |  Actual Points:
  review-group-14                                |
Parent ID:                                       |         Points:  0.5
 Reviewer:  asn                                  |        Sponsor:
                                                 |  SponsorR-can
-------------------------------------------------+-------------------------

Comment (by dgoulet):

 Replying to [comment:4 asn]:
 > Initial review:
 >
 > Changes look reasonable to me. One question, why does
 `circuit_get_next_service_intro_circ()` need the `start` argument?
 >
 > In the old code, we just iterated from the beginning of the circuitlist
 everytime. Why do we now begin from `start`? Is it an optimization?

 Yes. It is also to basically follow the `circuit_get_next_by_*` API that
 uses that technique. Without it, we can't return a circuit from the middle
 of the list matching our requirements and then continuing the loop at that
 circuit. Else, the other options is for the function to return a list of
 matching circuits. No strong preferences here, I would be fine with
 either.

 >
 > Also, BTW I didn't manage to reproduce the original bug. How do we do
 it? I started up a Tor with a normal HS, then I added an ADD_ONION, and
 then I HUPed. Am I missing a step?

 Yes, normal service then you do `ADD_ONION NEW:BEST Port=8161` and then
 HUP or `SIGNAL RELOAD`, you should hit the BUG. Btw, it won't be on
 console if you setup logging and should look like this (I just reproduced
 it on master):

 {{{
 Jan 09 09:23:44.000 [warn] tor_bug_occurred_(): Bug:
 src/or/rendservice.c:839: rend_config_services: Non-fatal assertion
 !(rend_service_is_ephemeral(new)) failed. (on Tor 0.3.0.1-alpha-dev
 655ffeadd53833d9)
 Jan 09 09:23:44.000 [warn] Bug: Non-fatal assertion
 !(rend_service_is_ephemeral(new)) failed in rend_config_services at
 src/or/rendservice.c:839. Stack trace: (on Tor 0.3.0.1-alpha-dev
 655ffeadd53833d9)
 [...]
 }}}

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


More information about the tor-bugs mailing list