[tor-bugs] #21312 [Obfuscation/Snowflake]: snowflake-client is pegged at 100% cpu
Tor Bug Tracker & Wiki
blackhole at torproject.org
Tue Mar 13 18:57:17 UTC 2018
#21312: snowflake-client is pegged at 100% cpu
-----------------------------------+--------------------------------
Reporter: arlolra | Owner: arlolra
Type: defect | Status: needs_revision
Priority: High | Milestone:
Component: Obfuscation/Snowflake | Version:
Severity: Major | Resolution:
Keywords: | Actual Points:
Parent ID: | Points:
Reviewer: | Sponsor:
-----------------------------------+--------------------------------
Comment (by cypherpunks):
Replying to [comment:27 dcf]:
> @cypherpunks which change do you mean? The patches in comment:21 (go-
webrtc), comment:22 (snowflake-client), and comment:24 (proxy-go) are by
arlolra. If you mean comment:25, all I did was recompile with the patch
from command:24 and deploy the public proxy-go instances.
I meant the changes on the server side, i.e. comment:24.
> I too have noticed some occasional short delays, but I assumed they were
because of the client closing connections after 30 seconds (#25429). Maybe
I'm wrong, but your log line `No messages received for 30 seconds --
closing stale connection.` is consistent with that assumption.
Maybe that change didn't produce a bug by itself but only exacerbated some
other bug. Also note that this sometimes happens even when I'm not
"pausing" activity, for example with a long download (which ends up
failing), and would even result in a "Secure Connection Failed" while an
iframe was loading, or a tab endlessly loading.
I also tried to have a download in place while browsing, and at some point
the download failed as well as the sites that were loading. So I think
this rules out that #25429 is the only bug here, from the logs:
{{{
33:44 WebRTC: At capacity [1/1] Retrying in 10 seconds...
33:45 Traffic Bytes (in|out): 1888447 | 58143 -- (346 OnMessages, 73
Sends)
33:50 Traffic Bytes (in|out): 2297595 | 71457 -- (397 OnMessages, 89
Sends)
33:54 WebRTC: At capacity [1/1] Retrying in 10 seconds...
34:03 Traffic Bytes (in|out): 941820 | 33542 -- (152 OnMessages, 40 Sends)
34:04 WebRTC: At capacity [1/1] Retrying in 10 seconds...
34:14 WebRTC: At capacity [1/1] Retrying in 10 seconds...
34:16 Traffic Bytes (in|out): 0 | 3200 -- (0 OnMessages, 4 Sends)
34:22 WebRTC: No messages received for 30 seconds -- closing stale
connection.
34:22 WebRTC: closing DataChannel
34:22 WebRTC: DataChannel.OnClose [locally]
34:22 WebRTC: closing PeerConnection
34:22 WebRTC: Closing
34:22 copy loop ended
}}}
> If you know how to compile Go code, you could try changing
`SnowflakeTimeout` in snowflake.go from `30` to `3600`, replacing
Browser/TorBrowser/Tor/PluggableTransports/snowflake-client in your Tor
Browser, and leaving a note at #25429 to say if it improved the situation.
I had initially hopped that putting `ConnectionPadding 1` in the `torrc`
would turn out to be an easy solution, but given what I said above it's
not #25429 that is the only problem. And I don't think upping the timeout
would solve the issue.
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/21312#comment:30>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
More information about the tor-bugs
mailing list