Skip to content
  • David Goulet's avatar
    guard: Ignore marked for close circuit when changing state to open · e3f34780
    David Goulet authored
    
    
    When we consider all circuits in "waiting for guard" state to be promoted to
    an "open" state, we were considering all circuits, even the one marked for
    close.
    
    This ultiamtely triggers a "circuit_has_opened()" called on the circuit that
    is marked for close which then leads to possible undesirable behaviors within
    a subsystem.
    
    For instance, the HS subsystem would be unable to find the authentication key
    of the introduction point circuit leading to a BUG() warning and a duplicate
    mark for close on the circuit.
    
    This commit also adds a unit test to make sure we never select marked for
    close circuits when upgrading its guard state from waiting for guard to open.
    
    Fixes #30871
    
    Signed-off-by: David Goulet's avatarDavid Goulet <dgoulet@torproject.org>
    e3f34780