[tor-bugs] #29990 [Core Tor/Tor]: Handle zero monotonic time differences in the circuit padding code

Tor Bug Tracker & Wiki blackhole at torproject.org
Thu Apr 4 02:08:53 UTC 2019


#29990: Handle zero monotonic time differences in the circuit padding code
-------------------------------------------------+-------------------------
 Reporter:  teor                                 |          Owner:  (none)
     Type:  defect                               |         Status:  new
 Priority:  Medium                               |      Milestone:  Tor:
                                                 |  0.4.1.x-final
Component:  Core Tor/Tor                         |        Version:  Tor:
                                                 |  unspecified
 Severity:  Normal                               |     Resolution:
 Keywords:  wtf-pad, tor-relay, tor-cell,        |  Actual Points:
  padding, 041-must                              |
Parent ID:  #29500                               |         Points:  2
 Reviewer:                                       |        Sponsor:
                                                 |  Sponsor2
-------------------------------------------------+-------------------------
Description changed by teor:

Old description:

> I can reliably get the following failure on my macOS VM when its wall
> clock time is out of sync with the host time.
>
> Failures like this also intermittently happen when the underlying API is
> low-resolution, or not actually monotonic (for example, Windows).
>
> {{{
> circuitpadding/circuitpadding_circuitsetup_machine: [forking]
>   FAIL ../src/test/test_circuitpadding.c:1900:
> assert(client_side->padding_info[0]->padding_scheduled_at_usec OP_NE 0):
> 0 vs 0
>   [circuitpadding_circuitsetup_machine FAILED]
> }}}
>
> I've worked around the issue in #29500 by disabling these tests, but we
> should fix them long-term.

New description:

 I can reliably get the following failure on my macOS VM when its wall
 clock time is out of sync with the host time.

 Failures like this also intermittently happen when the underlying API is
 low-resolution, or not actually monotonic (for example, Windows).

 {{{
 circuitpadding/circuitpadding_circuitsetup_machine: [forking]
   FAIL ../src/test/test_circuitpadding.c:1900:
 assert(client_side->padding_info[0]->padding_scheduled_at_usec OP_NE 0): 0
 vs 0
   [circuitpadding_circuitsetup_machine FAILED]
 }}}

 I've worked around the issue in #29500 by weakening the test conditions.

 But we need to fix the circuitpadding code so it handles zero monotonic
 time differences correctly.

--

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


More information about the tor-bugs mailing list