[tor-bugs] #29787 [Metrics/Onionperf]: Enumerate possible failure cases and include failure information in .tpf output

Tor Bug Tracker & Wiki blackhole at torproject.org
Thu Apr 11 14:10:30 UTC 2019


#29787: Enumerate possible failure cases and include failure information in .tpf
output
-------------------------------+------------------------------
 Reporter:  karsten            |          Owner:  metrics-team
     Type:  enhancement        |         Status:  new
 Priority:  Medium             |      Milestone:
Component:  Metrics/Onionperf  |        Version:
 Severity:  Normal             |     Resolution:
 Keywords:                     |  Actual Points:
Parent ID:                     |         Points:
 Reviewer:                     |        Sponsor:
-------------------------------+------------------------------

Comment (by karsten):

 Alright, I got your script running. Yay!

 I also improved my initial analysis a few days ago by first reordering
 tgen log lines by transfer and then looking at state change sequences.

 A quick comparison of your script and my result shows that your script
 detects only a subset of 29 of the 95 failures that my updated script
 detects.

 Here are the sequences found by my script together with their frequencies:

 {{{
    81 OP_UNKNOWN_1 [transport CONNECT INIT, transport INIT CHOICE,
 transport CHOICE REQUEST, transport REQUEST RESPONSEA, transport RESPONSEA
 ERROR, transport_error NONE STATUS, transfer COMMAND ERROR, transfer_error
 NONE PROXY]
    6 OP_UNKNOWN_2 [transport CONNECT INIT, transport INIT CHOICE,
 transport CHOICE REQUEST, transport REQUEST RESPONSEA, transport RESPONSEA
 RESPONSEB, transport RESPONSEB RESPONSEC, transport RESPONSEC SUCCESS,
 transfer COMMAND RESPONSE, transfer RESPONSE PAYLOAD, transport SUCCESS
 ERROR, transport_error NONE READ, transfer PAYLOAD ERROR, transfer_error
 NONE READ]
    3 OP_UNKNOWN_3 [transport CONNECT INIT, transport INIT CHOICE,
 transport CHOICE REQUEST, transport REQUEST RESPONSEA, transport RESPONSEA
 RESPONSEB, transport RESPONSEB RESPONSEC, transport RESPONSEC SUCCESS,
 transfer COMMAND RESPONSE, transport SUCCESS ERROR, transport_error NONE
 READ, transfer RESPONSE ERROR, transfer_error NONE AUTH]
    2 OP_UNKNOWN_4 [transport CONNECT INIT, transport INIT CHOICE,
 transport CHOICE REQUEST, transport REQUEST RESPONSEA, transport RESPONSEA
 RESPONSEB, transport RESPONSEB RESPONSEC, transport RESPONSEC SUCCESS,
 transfer COMMAND RESPONSE, transfer RESPONSE ERROR, transfer_error NONE
 AUTH]
    2 OP_TIMEOUT_5 [transport CONNECT INIT, transport INIT CHOICE,
 transport CHOICE REQUEST, transport REQUEST RESPONSEA, transport RESPONSEA
 RESPONSEB, transport RESPONSEB RESPONSEC, transport RESPONSEC SUCCESS,
 transfer COMMAND RESPONSE, transfer RESPONSE PAYLOAD, transfer PAYLOAD
 ERROR, transfer_error NONE TIMEOUT]
    1 OP_TIMEOUT_6 [transport CONNECT INIT, transport INIT CHOICE,
 transport CHOICE REQUEST, transport REQUEST RESPONSEA, transport RESPONSEA
 RESPONSEB, transport RESPONSEB RESPONSEC, transport RESPONSEC SUCCESS,
 transfer COMMAND RESPONSE, transfer RESPONSE ERROR, transfer_error NONE
 TIMEOUT]
 }}}

 Your script finds:

 {{{
  16 OP_UNKNOWN_1 (missing 65!)
   6 OP_UNKNOWN 2
   3 OP_UNKNOWN_3
   2 OP_UNKNOWN_4
   1 OP_TIMEOUT_5 (missing 1!)
   1 OP_TIMEOUT_6
 }}}

 Here are the missing transfer IDs:

 transfer50k:11585 transfer50k:6186 transfer50k:563 transfer1m:3946
 transfer1m:6079 transfer50k:10503 transfer50k:10594 transfer50k:10975
 transfer50k:11040 transfer50k:11225 transfer50k:1154 transfer50k:11586
 transfer50k:11587 transfer50k:11771 transfer50k:11888 transfer50k:12189
 transfer50k:12475 transfer50k:12680 transfer50k:12723 transfer50k:1301
 transfer50k:13433 transfer50k:13478 transfer50k:15107 transfer50k:15893
 transfer50k:15902 transfer50k:16012 transfer50k:17344 transfer50k:17724
 transfer50k:17791 transfer50k:18207 transfer50k:18257 transfer50k:18449
 transfer50k:2460 transfer50k:2473 transfer50k:2903 transfer50k:3201
 transfer50k:3310 transfer50k:3844 transfer50k:4601 transfer50k:4685
 transfer50k:5067 transfer50k:5665 transfer50k:5754 transfer50k:581
 transfer50k:5907 transfer50k:5912 transfer50k:6468 transfer50k:6551
 transfer50k:6738 transfer50k:6886 transfer50k:7089 transfer50k:7266
 transfer50k:7481 transfer50k:7503 transfer50k:7586 transfer50k:8200
 transfer50k:8259 transfer50k:8277 transfer5m:14290 transfer5m:14570
 transfer5m:2020 transfer5m:5208 transfer5m:5394 transfer5m:5422
 transfer5m:6319 (these are the 65 OP_UNKNOWN_1 cases)

 transfer5m:572 (this is the 1 missing OP_TIMEOUT_5 case)

 Would you want to take a look why your script does not detect these
 failures?

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


More information about the tor-bugs mailing list