#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
_______________________________________________ tor-bugs mailing list tor-bugs@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-bugs