Skip to content
Snippets Groups Projects
  1. Apr 04, 2022
    • Nick Mathewson's avatar
      circmgr: Avoid a race condition in circuit usage restriction · 86c59dd1
      Nick Mathewson authored
      We were treating restrict_mut() failures as internal errors, and
      using internal errors to represent them.  But in fact, these
      failures are entirely possible based on timing.  Here's how it
      happens:
      
      * Two different circuit requests arrive at the same time, and both
        notice a pending circuit that they could use.
      * The pending circuit completes; both pending requests are notified.
      * The first request calls restrict_mut(), and restricts the request
        in such a way that the second couldn't use it.
      * The second request calls restrict_mut(), and gets a failure.
      
      Because of this issue, we treat these errors as transient failures
      and just wait for another circuit.
      
      Closes #427.
      
      (This is not a breaking API change, since `AbstractSpec` is a
      crate-private trait.)
      86c59dd1
    • Nick Mathewson's avatar
    • Nick Mathewson's avatar
      Reformat tor-error/Cargo.toml · a044d4bc
      Nick Mathewson authored
      a044d4bc
  2. Apr 02, 2022
  3. Apr 01, 2022
  4. Mar 31, 2022
  5. Mar 30, 2022
Loading