[tor-bugs] #33336 [Circumvention/Snowflake]: Trial deployment of Snowflake with Turbo Tunnel
Tor Bug Tracker & Wiki
blackhole at torproject.org
Thu Feb 27 07:52:25 UTC 2020
#33336: Trial deployment of Snowflake with Turbo Tunnel
-------------------------------------+--------------------------
Reporter: dcf | Owner: dcf
Type: task | Status: accepted
Priority: Medium | Milestone:
Component: Circumvention/Snowflake | Version:
Severity: Normal | Resolution:
Keywords: turbotunnel | Actual Points:
Parent ID: | Points:
Reviewer: | Sponsor:
-------------------------------------+--------------------------
Comment (by dcf):
Replying to [comment:20 arma]:
> I browsed for a while. It worked fine. I disabled my wireless on the
laptop,
You have a knack for thinking of interesting tests :) Killing the wireless
would not only break the WebRTC connection to the proxy, it would also
prevent snowflake-client from contacting the broker to get a new one. But
my guess is that it should handle even this gracefully, attempting every
10 seconds to contact the broker until it starts working again.
{{{
Feb 25 14:36:24.457 [notice] Closing OR conn. Considering blaming guard.
}}}
{{{
2020/02/25 14:36:24 copying WebRTC to SOCKS resulted in error: write tcp
[scrubbed]->[scrubbed]: write: broken pipe
2020/02/25 14:36:24 WebRTC: closing DataChannel
2020/02/25 14:36:24 WebRTC: closing PeerConnection
2020/02/25 14:36:24 Error writing to SOCKS pipe
}}}
What I see here is tor closing its SOCKS connection to snowflake-client,
and snowflake-client noticing the closed connection and tearing down its
own proxy connection. That part all looks fine.
{{{
Feb 25 14:36:24.458 [warn] Pluggable Transport process terminated with
status code 512
}}}
The weird part is that in the same second the snowflake-client process is
terminated. It's an abnormal termination; otherwise you would see another
log line with
[https://gitweb.torproject.org/user/dcf/snowflake.git/tree/client/snowflake.go?h=turbotunnel&id=47312dd1eccc8456652853bd66f8ed396e9ba6ec#n215
""snowflake is done""]. Failure to write to the SOCKS connection shouldn't
cause snowflake-client to exit anyway; its
[https://gitweb.torproject.org/user/dcf/snowflake.git/tree/client/snowflake.go?h=turbotunnel&id=47312dd1eccc8456652853bd66f8ed396e9ba6ec#n48
socksAcceptLoop] function should keep running and accepting new SOCKS
connections.
Two possible explanations for what's happening are
1. snowflake-client is panicking or crashing in an uncontrolled way.
2. tor is killing snowflake-client rather than signaling it to exit
gracefully.
In case (1), I would expect a stack trace to make its way into the tor log
via tor's PT stderr handler. Is there anything in the "Closing OR conn"
code path that would make tor kill the PT process?
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/33336#comment:22>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
More information about the tor-bugs
mailing list