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

Tor Bug Tracker & Wiki blackhole at torproject.org
Mon Apr 8 14:24:36 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 acute):

 It appears the tgen states are recorded by onionperf in the json output:
 {{{
 RESPONSEA;RESPONSEA>RESPONSEB;RESPONSEB>RESPONSEC;RESPONSEC>SUCCESS;COMMAND>RESPONSE;RESPONSE>PAYLOAD;PAYLOAD>CHECKSUM;CHECKSUM>SUCCESS;
 }}}

 ...corresponds to:
 {{{
     "proxy_choice": 0.003267, //CHOICE
     "proxy_init": 0.000639,   //INIT
     "proxy_request": 0.007366, //REQUEST
     "proxy_response": 1.042777, //RESPONSE A/B/C
     "response": 1.246581, //RESPONSE
     "payload_progress" //PAYLOAD
     "socket_connect": 0.000555, //CONNECT
     "checksum": 13.956267, //CHECKSUM
     "command": 10.765423, //COMMAND
     [...]
 }}}

 Where there is an error that stops the flow of state changes, the json
 will only contain the states that succeeded. My theory is that we can
 infer the phase where a transfer failed directly from the json output of
 OnionPerf. I've been working on a script that produces a *.csv output with
 all the information from the json for all onionperf errors. You can see a
 sample *csv file [https://erg.abdn.ac.uk/~ana/errors_a.csv here] (can't
 attach as trac thinks it's spam):


 To test the theory above, I suggest we compare your results with the
 results of my python script over the same data.
 [https://erg.abdn.ac.uk/~ana/op_errors.py Here is the python script] you
 can run over the same data you analyzed to see if we can get the same
 results (i.e same phase where the transfer errored). The *csv records
 other information also. You need python3 and python3-pandas installed for
 the script to run.
 {{{
 python3 op_errors.py --path folder-with-json-files
 }}}

 [ Also the script matches whether there was an error recorded in tor
 stream for each transfer. Matching is done on the port+timestamp. So far I
 can see only onionperf 'proxy' errors are directly linked to tor
 errors...let me know if you need more info on what the columns in the csv
 are]

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


More information about the tor-bugs mailing list