Snowflake issueshttps://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues2023-10-25T15:40:24Zhttps://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40069Snowflake needs outbound proxy support2023-10-25T15:40:24ZtlaSnowflake needs outbound proxy supportFor continued iOS support, we will need to run Snowflake behind a proxy, since with its Go runtime it's way to big to run in a [Network Extension](https://developer.apple.com/documentation/networkextension/packet_tunnel_provider), which ...For continued iOS support, we will need to run Snowflake behind a proxy, since with its Go runtime it's way to big to run in a [Network Extension](https://developer.apple.com/documentation/networkextension/packet_tunnel_provider), which has a hard 15 MByte RAM usage limit.
Currently, Snowflake doesn't seem to support that scenario.
Please point me to the code, if it actually has, so I can understand how to leverage it.
If not, I suggest having a look at Obfs4proxy for reference on how this could be implemented:
https://gitlab.com/yawning/obfs4/-/blob/master/obfs4proxy/obfs4proxy.go#L67-158
Thank you!shelikhooshelikhoohttps://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40068Is there a better moat/snowflake SNI than cdn.sstatic.net?2024-02-27T19:03:17ZRoger DingledineIs there a better moat/snowflake SNI than cdn.sstatic.net?(@cohosh asked me to file this ticket after a bit of discussion)
In Tor Browser, we launch Snowflake with
```
snowflake-client \
-url https://snowflake-broker.torproject.net.global.prod.fastly.net/ \
-front cdn.sstatic.net \
-ice ...(@cohosh asked me to file this ticket after a bit of discussion)
In Tor Browser, we launch Snowflake with
```
snowflake-client \
-url https://snowflake-broker.torproject.net.global.prod.fastly.net/ \
-front cdn.sstatic.net \
-ice [...]
```
That cdn.sstatic.net is the SNI that we write on the outside of the TLS connection to fastly. That is, Tor Browser Snowflake users try to look like people reaching for a piece
of stackexchange, when they reach out to the broker to ask for a connect-back.
Similarly, for Moat, in about:config we see
```
extensions.torlauncher.bridgedb_front : cdn.sstatic.net
```
So Tor Browser users who are fetching a new set of bridges inside Tor Browser also look like people reaching for a piece of stackexchange.
So:
(a) Is this site a particularly robust example in the context of collateral freedom? Are there better ones we might pick? Should we add some variety? Or maybe variety just makes for an even more unusual fingerprint?
(b) We should probably set up some sort of automation to make sure stackexchange stays on fastly, since if they leave, our Snowflake and Moat will suddenly and strangely break.
(c) We should also be aware that these connections aren't "invisible" -- making a connection out of the blue to a piece of stackexchange, but not to other pieces of it, is a recognizable signature if people on the local network are looking for it.https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40067Add 'Number of users your Snowflake has helped so far' feature in the extension2021-10-04T10:10:56ZShakilAdd 'Number of users your Snowflake has helped so far' feature in the extensionCurrently, it has 'Number of users your Snowflake has helped circumvent censorship in the last 24 hours'. I really love watching the number grow from 0 to 10-15 every day. If it is possible to see all the people I have helped so far, tha...Currently, it has 'Number of users your Snowflake has helped circumvent censorship in the last 24 hours'. I really love watching the number grow from 0 to 10-15 every day. If it is possible to see all the people I have helped so far, that would be even more encouraging.https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40065Old CentOS Linux snowflake: go.mod at revision v1.1.0: unknown revision v1.1.02022-10-13T17:50:19ZslrslrOld CentOS Linux snowflake: go.mod at revision v1.1.0: unknown revision v1.1.0Hello, i have followed https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/wikis/home#source-code and "go build" output:
`go: git.torproject.org/pluggable-transports/goptlib.git@v1.1.0: reading git.torproj...Hello, i have followed https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/wikis/home#source-code and "go build" output:
`go: git.torproject.org/pluggable-transports/goptlib.git@v1.1.0: reading git.torproject.org/pluggable-transports/goptlib.git/go.mod at revision v1.1.0: unknown revision v1.1.0
`
also in the tutorial i would replace:
Build the Snowflake proxy.
```
go build
```
by:
Build the Snowflake proxy.
```
cd snowflake;go build
```
as it does not work without going to the git cloned dir.https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40064How to manage CPU saturation?2022-04-05T15:23:39ZJacobo NájeraHow to manage CPU saturation?Hi,
For several months I have been running various snowflake proxies with the standalone version. On two occasions I identified CPU saturation. I currently have a snowflake proxy that consumes between 90% and 100% CPU.
CPU usage
![Ca...Hi,
For several months I have been running various snowflake proxies with the standalone version. On two occasions I identified CPU saturation. I currently have a snowflake proxy that consumes between 90% and 100% CPU.
CPU usage
![Captura_de_pantalla_de_2021-08-29_22-08-45](/uploads/b6af9f8067d28e058559538e3d583c7e/Captura_de_pantalla_de_2021-08-29_22-08-45.png)
Connections
![Captura_de_pantalla_de_2021-08-30_23-28-50](/uploads/285a0f49645210e8beedb55b7e4d439d/Captura_de_pantalla_de_2021-08-30_23-28-50.png)
Software setup
- Docker image thetorproject/snowflake-proxy:latest
- Debian Buster
How to manage CPU saturation?
Thanks, Jacobohttps://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40063Restructure snowflake library for v2 release2021-11-11T14:11:55ZCecylia BocovichRestructure snowflake library for v2 releaseThe next time we bump the version of Snowflake, we have to make a major version bump because of the changes to `NewSnowflakeClient` needed for the new AMP cache rendezvous method. This is a good opportunity to evaluate our API, which fun...The next time we bump the version of Snowflake, we have to make a major version bump because of the changes to `NewSnowflakeClient` needed for the new AMP cache rendezvous method. This is a good opportunity to evaluate our API, which functions/structures are exported, and which API features will be most useful for others who want to use our library. We should also take a look at best practices for library structure and naming mechanics and how much room we have to change there.
Some things to consider:
- [ ] [OONI has requested we introduce a way to direct Snowflake logs to a chosen output](https://github.com/ooni/probe/issues/1730)
- [x] As discussed in !50, if we export the `RendezvousMethod` interface, callers of the library can implement their own rendezvous methods
- [ ] Implementing callbacks for specific events would make it easier for calling programs to debug or react different to different types of connection failures or censorship attempts (see #40062 for some inspiration for this)
- [x] Can we get some official Go documentation/reference for this library? Let's at least evaluate if we need to improve what we have
- [x] We're probably exporting way more things than we need to be. Cutting down on what we export will make documentation and usage of the library simpler, and also [might help reduce binary size](#40004) (though I haven't confirmed this).Cecylia BocovichCecylia Bocovichhttps://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40061It wont connect2022-10-05T15:37:32ZcypherpunksIt wont connectIt's stuck at 10 %It's stuck at 10 %https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40060server is still logging io.ErrClosedPipe errors because of wrapped errors2022-01-07T16:46:16ZDavid Fifielddcf@torproject.orgserver is still logging io.ErrClosedPipe errors because of wrapped errorsDespite !30, the Snowflake server is still logging `io.ErrClosedPipe` errors:
```
2021/06/24 17:41:12 error copying WebSocket to ORPort readfrom tcp [scrubbed]->[scrubbed]: io: read/write on closed pipe
2021/06/24 17:46:11 acceptStreams...Despite !30, the Snowflake server is still logging `io.ErrClosedPipe` errors:
```
2021/06/24 17:41:12 error copying WebSocket to ORPort readfrom tcp [scrubbed]->[scrubbed]: io: read/write on closed pipe
2021/06/24 17:46:11 acceptStreams: io: read/write on closed pipe
2021/06/24 17:46:33 error copying WebSocket to ORPort readfrom tcp [scrubbed]->[scrubbed]: io: read/write on closed pipe
2021/06/24 18:20:20 error copying ORPort to WebSocket io: read/write on closed pipe
```
The reason is that the errors are not really `io.ErrClosedPipe`; they are wrapped by [`errors.WithStack`](https://pkg.go.dev/github.com/pkg/errors#WithStack) in kcp-go. You can see the different using `log.Printf("%T", err)`, which yields `*errors.withStack`.
I was having the same problem in the dnstt server. I solved it by using [`errors.Is`](https://pkg.go.dev/errors#Is) from the [go1.13 errors interface](https://blog.golang.org/go1.13-errors), rather than plain equality.
https://repo.or.cz/dnstt.git/commitdiff/e4dc2883efea932f1da62ef35c3e88806aed9eeahttps://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40058Snowflake embed refuses to work on Chromium?2022-07-09T04:20:16ZkoutsieSnowflake embed refuses to work on Chromium?Snowflake (embed) simply refuses to enable on Chromium and Chrome.
At first i thought it was one of my extensions but a couple of friends reported the inability to enable Snowflake's embed while stating that the web extension version wor...Snowflake (embed) simply refuses to enable on Chromium and Chrome.
At first i thought it was one of my extensions but a couple of friends reported the inability to enable Snowflake's embed while stating that the web extension version works fine.https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40057A weird issue about domain name resolution2022-03-01T15:55:27Zdebug996A weird issue about domain name resolutionDevelopers of Snowflake,
I have trouble to use the snowflake bridge to connect to Tor. To find out the main issue, I managed to collect the log of snowflake. (attached below)
It can be seen that the snowflake program tries to resolve h...Developers of Snowflake,
I have trouble to use the snowflake bridge to connect to Tor. To find out the main issue, I managed to collect the log of snowflake. (attached below)
It can be seen that the snowflake program tries to resolve host names from [::1]:53, but there is no dns server listening, nor is there a statement for [::1]:53 in /etc/resolv.conf .
```
--- Starting Snowflake Client ---
2021/07/24 07:12:11 Using ICE servers:
2021/07/24 07:12:11 url: stun:stun.sonetel.com:3478
2021/07/24 07:12:11 url: stun:stun.stunprotocol.org:3478
2021/07/24 07:12:11 url: stun:stun.dus.net:3478
2021/07/24 07:12:11 url: stun:stun.uls.co.za:3478
2021/07/24 07:12:11 url: stun:stun.voip.blackberry.com:3478
2021/07/24 07:12:11 url: stun:stun.sonetel.net:3478
2021/07/24 07:12:11 url: stun:stun.bluesip.net:3478
2021/07/24 07:12:11 Rendezvous using Broker at: https://snowflake-broker.torproject.net.global.prod.fastly.net/
2021/07/24 07:12:11 Domain fronting using: cdn.sstatic.net
2021/07/24 07:12:11 Started SOCKS listener at 127.0.0.1:39363.
2021/07/24 07:12:11 Error resolving address: lookup stun.sonetel.com on [::1]:53: read udp [::1]:60448->[::1]:53: read: connection refused
2021/07/24 07:12:11 Error creating STUN connection: lookup stun.sonetel.com on [::1]:53: read udp [::1]:60448->[::1]:53: read: connection refused
2021/07/24 07:12:11 Error resolving address: lookup stun.stunprotocol.org on [::1]:53: read udp [::1]:46030->[::1]:53: read: connection refused
2021/07/24 07:12:11 Error creating STUN connection: lookup stun.stunprotocol.org on [::1]:53: read udp [::1]:46030->[::1]:53: read: connection refused
2021/07/24 07:12:11 Error resolving address: lookup stun.dus.net on [::1]:53: read udp [::1]:46841->[::1]:53: read: connection refused
2021/07/24 07:12:11 Error creating STUN connection: lookup stun.dus.net on [::1]:53: read udp [::1]:46841->[::1]:53: read: connection refused
2021/07/24 07:12:11 Error resolving address: lookup stun.uls.co.za on [::1]:53: read udp [::1]:51689->[::1]:53: read: connection refused
2021/07/24 07:12:11 Error creating STUN connection: lookup stun.uls.co.za on [::1]:53: read udp [::1]:51689->[::1]:53: read: connection refused
2021/07/24 07:12:11 Error resolving address: lookup stun.voip.blackberry.com on [::1]:53: read udp [::1]:51608->[::1]:53: read: connection refused
2021/07/24 07:12:11 Error creating STUN connection: lookup stun.voip.blackberry.com on [::1]:53: read udp [::1]:51608->[::1]:53: read: connection refused
2021/07/24 07:12:11 Error resolving address: lookup stun.sonetel.net on [::1]:53: read udp [::1]:35863->[::1]:53: read: connection refused
2021/07/24 07:12:11 Error creating STUN connection: lookup stun.sonetel.net on [::1]:53: read udp [::1]:35863->[::1]:53: read: connection refused
2021/07/24 07:12:11 Error resolving address: lookup stun.bluesip.net on [::1]:53: read udp [::1]:42763->[::1]:53: read: connection refused
2021/07/24 07:12:11 Error creating STUN connection: lookup stun.bluesip.net on [::1]:53: read udp [::1]:42763->[::1]:53: read: connection refused
2021/07/24 07:12:11 NAT Type: unknown
2021/07/24 07:12:11 SOCKS accepted: {192.0.2.3:1 map[]}
2021/07/24 07:12:11 ---- SnowflakeConn: begin collecting snowflakes ---
2021/07/24 07:12:11 ---- SnowflakeConn: starting a new session ---
2021/07/24 07:12:11 ---- SnowflakeConn: begin stream 3 ---
2021/07/24 07:12:11 redialing on same connection
2021/07/24 07:12:11 WebRTC: Collecting a new Snowflake. Currently at [0/1]
2021/07/24 07:12:11 snowflake-c33c6e11b0e8bdf9 connecting...
2021/07/24 07:12:11 WebRTC: DataChannel created.
2021/07/24 07:12:11 WebRTC: Created offer
2021/07/24 07:12:11 WebRTC: Set local description
2021/07/24 07:12:11 WebRTC: PeerConnection created.
2021/07/24 07:12:11 Negotiating via BrokerChannel...
Target URL: snowflake-broker.torproject.net.global.prod.fastly.net
Front URL: cdn.sstatic.net
2021/07/24 07:12:11 WebRTC: closing DataChannel
2021/07/24 07:12:11 WebRTC: closing PeerConnection
2021/07/24 07:12:11 WebRTC: Closing
2021/07/24 07:12:11 WebRTC: dial tcp: lookup cdn.sstatic.net on [::1]:53: read udp [::1]:41939->[::1]:53: read: connection refused Retrying...
2021/07/24 07:12:21 WebRTC: Collecting a new Snowflake. Currently at [0/1]
2021/07/24 07:12:21 snowflake-07b5e298791ef573 connecting...
2021/07/24 07:12:21 WebRTC: DataChannel created.
2021/07/24 07:12:21 WebRTC: Created offer
2021/07/24 07:12:21 WebRTC: Set local description
2021/07/24 07:12:21 WebRTC: PeerConnection created.
2021/07/24 07:12:21 Negotiating via BrokerChannel...
Target URL: snowflake-broker.torproject.net.global.prod.fastly.net
Front URL: cdn.sstatic.net
2021/07/24 07:12:21 WebRTC: closing DataChannel
2021/07/24 07:12:21 WebRTC: closing PeerConnection
2021/07/24 07:12:21 WebRTC: Closing
2021/07/24 07:12:21 WebRTC: dial tcp: lookup cdn.sstatic.net on [::1]:53: read udp [::1]:40102->[::1]:53: read: connection refused Retrying...
```https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40054uTLS for broker negotiation2022-10-18T16:23:33Zmax-buTLS for broker negotiationThe connection from the snowflake client to the broker server currently uses go's `net/http.DefaultTransport`. That connection is optionally domain fronted, but the TLS handshake is easily fingerprintable as a go handshake, which might t...The connection from the snowflake client to the broker server currently uses go's `net/http.DefaultTransport`. That connection is optionally domain fronted, but the TLS handshake is easily fingerprintable as a go handshake, which might trigger additional scrutiny in regimes where that kind of TLS inspection is possible and actionable.
[This paper](https://sfrolov.io/papers/ndss19-frolov.pdf), though a bit out of date now (2019) references meek and even snowflake:
> Snowflake is under active development, and its authors were aware of potential TLS fingerprintability issues. Indeed,we find that Snowflake (built from git master branch on April17, 2018) generates a fingerprint that is close to, but not exactly the same as the default Golang TLS fingerprint. In particular,it diverges by including the NPN and ALPN extensions, and offers a different set of signature algorithms. As a result, this fingerprint is seen in fewer than 0.0008% of connections, making it susceptible to blocking.
The author of that paper, Sergey Frolov, maintains https://tlsfingerprint.io/ which is a list of the most popularly seen TLS fingerprints, and created https://github.com/refraction-networking/utls which is a library designed for creating TLS connections with various commonly witnessed TLS fingerprints.
There's a fork of that library, https://gitlab.com/yawning/utls which seems to be used in obfs4's `meeklite` implementation, and it looks like @dcf implemented a version of that in https://gitweb.torproject.org/pluggable-transports/meek.git/tree/meek-client/utls.go which actually implements a `RoundTripper`. It seems as though actually using that library could be a relatively painless way to adopt utls for the broker negotiation.
@cohosh @meskio and I discussed a little bit whether there would be a good way to identify whether snowflake is actually being identified and/or blocked due to TLS fingerprinting in the broker connection. I suggested that it seemed possible that higher connection error rates in China vs other countries as well as other protocols (such as meek) performing better than snowflake in China _could_ be indicative of TLS fingerprinting blocking, though that's not particularly solid.
I'm sure @dcf would have much more context and information on this area and the relative usefulness of utls on the broker negotiation, but I thought I should throw this out there/open this issue in case it can be of some help.
Related:
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40014 (DTLS)shelikhooshelikhoohttps://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40053Possible to run a Snowflake proxy inside censored country?2021-06-24T14:30:33ZcypherpunksPossible to run a Snowflake proxy inside censored country?Despite what docs said, I've tested in China, running a Snowflake proxy is possible though the browser extension or https://snowflake.torproject.org/embed.
`snowflake.torproject.org` is censored, but `broker.freehaven.net` is not.
Spil...Despite what docs said, I've tested in China, running a Snowflake proxy is possible though the browser extension or https://snowflake.torproject.org/embed.
`snowflake.torproject.org` is censored, but `broker.freehaven.net` is not.
Spilt them to get "registered" as not the proxy server.
`Your Snowflake is ready to help users circumvent censorship` will appear.
What shall happen if really a client connect to? I don't think they can bootstrap successfully since the proxy in China can't access Tor's directory servers. If so, it's possible for censorers to malform Snowflake proxy as many as possible inside censored country.https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40052Snowflake bridge keeps triggering OOM killer2021-06-25T14:24:09ZCecylia BocovichSnowflake bridge keeps triggering OOM killerSeems like #40051 did not solve our problem. The server was down again this morning:
```
Jun 18 11:58:44 snowflake kernel: [240512.397993] sshd invoked oom-killer: gfp_mask=0x100cca(GFP_HIGH
USER_MOVABLE), order=0, oom_score_adj=0
[snip...Seems like #40051 did not solve our problem. The server was down again this morning:
```
Jun 18 11:58:44 snowflake kernel: [240512.397993] sshd invoked oom-killer: gfp_mask=0x100cca(GFP_HIGH
USER_MOVABLE), order=0, oom_score_adj=0
[snip]
Jun 18 11:58:44 snowflake kernel: [240512.444250] [ pid ] uid tgid total_vm rss pgtables_bytes swapents oom_score_adj name
Jun 18 11:58:44 snowflake kernel: [240512.472145] [ 1641] 106 1641 168150 93653 1089536 0 0 tor
Jun 18 11:58:44 snowflake kernel: [240512.473285] [ 1642] 106 1642 548343 234687 2072576 0 0 snowflake-serve
Jun 18 11:58:44 snowflake kernel: [240512.476205] [ 7901] 108 7901 621 21 40960 0 0 timeout
Jun 18 11:58:44 snowflake kernel: [240512.477206] [ 7902] 108 7902 231410 2098 196608 0 0 proxy-go
Jun 18 11:58:44 snowflake kernel: [240512.477909] [ 12745] 108 12745 621 22 45056 0 0 timeout
Jun 18 11:58:44 snowflake kernel: [240512.479216] [ 12746] 108 12746 231410 3605 200704 0 0 proxy-go
[snip]
Jun 18 11:58:44 snowflake kernel: [240512.482848] oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null),cpuset=/,mems_allowed=0,global_oom,task_memcg=/system.slice/system-tor.slice/tor@default.service,task=snowflake-serve,pid=1642,uid=106
Jun 18 11:58:44 snowflake kernel: [240512.485406] Out of memory: Killed process 1642 (snowflake-serve) total-vm:2193372kB, anon-rss:938748kB, file-rss:0kB, shmem-rss:0kB, UID:106 pgtables:2024kB oom_score_adj:0
Jun 18 11:58:44 snowflake kernel: [240512.496421] oom_reaper: reaped process 1642 (snowflake-serve), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB
```Cecylia BocovichCecylia Bocovichhttps://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40051Upgrade memory capacity of snowflake bridge2022-10-03T01:01:14ZCecylia BocovichUpgrade memory capacity of snowflake bridgeThe snowflake server went offline again yesterday. The system log shows it was the result of the OOM killer again:
```
Jun 12 11:12:42 snowflake kernel: [6779302.156054] proxy-go invoked oom-killer: gfp
_mask=0x100cca(GFP_HIGHUSER_MOVAB...The snowflake server went offline again yesterday. The system log shows it was the result of the OOM killer again:
```
Jun 12 11:12:42 snowflake kernel: [6779302.156054] proxy-go invoked oom-killer: gfp
_mask=0x100cca(GFP_HIGHUSER_MOVABLE), order=0, oom_score_adj=0
Jun 12 11:12:42 snowflake kernel: [6779302.332733] oom-kill:constraint=CONSTRAINT_N
ONE,nodemask=(null),cpuset=/,mems_allowed=0,global_oom,task_memcg=/system.slice/sys
tem-tor.slice/tor@default.service,task=snowflake-serve,pid=7007,uid=106
Jun 12 11:12:42 snowflake kernel: [6779302.338121] Out of memory: Killed process 7007 (snowflake-serve) total-vm:1279524kB, anon-rss:249376kB, file-rss:0kB, shmem-rss:0kB, UID:106 pgtables:652kB oom_score_adj:0
Jun 12 11:12:42 snowflake kernel: [6779302.350275] oom_reaper: reaped process 7007 (snowflake-serve), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB
```
Looking at the memory in use by the server and proxies when the oom killer was triggered:
```
Jun 12 11:12:42 snowflake kernel: [6779302.268957] [ pid ] uid tgid total_vm rss pgtables_bytes swapents oom_score_adj name
Jun 12 11:12:42 snowflake kernel: [6779302.315899] [ 10513] 108 10513 621 21 45056 0 0 timeout
Jun 12 11:12:42 snowflake kernel: [6779302.317993] [ 10515] 108 10515 175983 3057 196608 0 0 proxy-go
Jun 12 11:12:42 snowflake kernel: [6779302.319553] [ 25211] 108 25211 621 21 45056 0 0 timeout
Jun 12 11:12:42 snowflake kernel: [6779302.321025] [ 25212] 108 25212 157550 3036 176128 0 0 proxy-go
Jun 12 11:12:42 snowflake kernel: [6779302.322516] [ 7006] 106 7006 131267 57233 946176 0 0 tor
Jun 12 11:12:42 snowflake kernel: [6779302.324228] [ 7007] 106 7007 319881 62344 667648 0 0 snowflake-serve
Jun 12 11:12:42 snowflake kernel: [6779302.327736] [ 8724] 108 8724 621 23 49152 0 0 timeout
Jun 12 11:12:42 snowflake kernel: [6779302.329365] [ 8725] 108 8725 175983 2115 180224 0 0 proxy-go
```
It doesn't look to me like the snowflake server is using up a huge amount of memory here. @dcf can we easily increase the memory for this machine? I might also brought down one of the proxy-go instances just to see if that gives us some more room.David Fifielddcf@torproject.orgDavid Fifielddcf@torproject.orghttps://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40050Upgrade snowflake bridge to 0.3.5.15 by 2021-06-15 for TROVE-2021-003, -004, ...2021-06-18T18:35:07ZDavid Fifielddcf@torproject.orgUpgrade snowflake bridge to 0.3.5.15 by 2021-06-15 for TROVE-2021-003, -004, -005, -006https://lists.torproject.org/pipermail/tor-talk/2021-June/045737.html
> In around two weeks–likely on the 14th or 15th– we plan to put out new stable Tor releases to fix issues in all currently released versions of Tor. There are three ...https://lists.torproject.org/pipermail/tor-talk/2021-June/045737.html
> In around two weeks–likely on the 14th or 15th– we plan to put out new stable Tor releases to fix issues in all currently released versions of Tor. There are three issues that will be fixed, with severity levels between "Medium" and "High" according to our classification system. The most severe issue, by our reckoning, is a denial-of-service issue affecting onion service clients. We'll share more details after people have time to patch. To the best of our knowledge, these vulnerabilities are not being exploited in the wild.
>
> The new releases will be 0.3.5.15, 0.4.4.9, 0.4.5.9, 0.4.6.5. The issues to be fixed are TROVE-2021-003 through TROVE-2021-006. When these releases are out, we will recommend that everybody upgrade, including clients *and* relays.David Fifielddcf@torproject.orgDavid Fifielddcf@torproject.org2021-06-18https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40049Move code out of #main to support reuse in lib without patching (IPtProxy)2022-10-18T14:43:22ZtlaMove code out of #main to support reuse in lib without patching (IPtProxy)For Snowflake on mobile, we cannot compile an executable with `gomobile`. Instead `gomobile` only produces libraries.
While the new PluggableTransport 2.0 API is nice in theory, we unfortunately need to satisfy Tor, which needs a PT 1.0...For Snowflake on mobile, we cannot compile an executable with `gomobile`. Instead `gomobile` only produces libraries.
While the new PluggableTransport 2.0 API is nice in theory, we unfortunately need to satisfy Tor, which needs a PT 1.0 interface via SOCKS.
So it's either we copy ~ 900 lines of code from [client/snowflake.go](client/snowflake.go) and [proxy/snowflake.go](proxy/snowflake.go), patch that to our needs and then try to keep up with the changes, or we keep a patchfile around, apply that before builds and keep that up to date.
For the `IPtProxy` library, it would be *awesome* if you could factor as much code as possible into a non-main namespace so we could use it without patching. Note: command line option parsing best stays in the `#main` function.
Please see/[apply](https://github.com/tladesignz/IPtProxy/blob/master/build.sh#L48) our [patchfile](https://github.com/tladesignz/IPtProxy/blob/master/snowflake.patch) to understand, what would be most suitable!https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40048Assign proxies based on self-reported client load2022-07-25T17:59:44ZCecylia BocovichAssign proxies based on self-reported client loadA lot of the discussion and motivation for this can be found in today's anti-censorship team [meeting notes](http://meetbot.debian.net/tor-meeting/2021/tor-meeting.2021-05-20-16.00.log.html). We want to make sure we have enough Snowflake...A lot of the discussion and motivation for this can be found in today's anti-censorship team [meeting notes](http://meetbot.debian.net/tor-meeting/2021/tor-meeting.2021-05-20-16.00.log.html). We want to make sure we have enough Snowflake proxies to hand out to clients with symmetric NATs.
There is already partially implemented log at the Snowflake broker to [assign a client load value](https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/blob/0054cb2dec19e89e07b8c5a6d8b9d23589842deb/broker/broker.go#L169) to proxies and [prioritize proxies with less load](https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/blob/0054cb2dec19e89e07b8c5a6d8b9d23589842deb/broker/snowflake-heap.go#L26). So most of the implementation of this feature will add a new message to the proxy-broker messaging protocol for proxies to report their client load, and modifications in proxies that allow them to keep track of their load.
We also need to worry about backwards compatibility since older proxies won't report any load value and this doesn't necessarily mean their load is 0. It is, however, likely to be pretty low (0 for browser proxies and < 10 for standalone ones). This is also more important to implement for standalone proxies that browser-based proxies right now.meskiomeskio@torproject.orgmeskiomeskio@torproject.orghttps://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40046Occasional CI failure for Proxy tests2024-02-27T18:58:26ZCecylia BocovichOccasional CI failure for Proxy testsI've seen this CI failure pop up occasionally but not always which means it's probably a race condition. Not sure if the problem is in the tests or the proxy code proper.
```
=== RUN TestBrokerInteractions
Proxy connections to brok...I've seen this CI failure pop up occasionally but not always which means it's probably a race condition. Not sure if the problem is in the tests or the proxy code proper.
```
=== RUN TestBrokerInteractions
Proxy connections to broker
polls broker correctly ✔✔
handles poll error ✔2021/05/11 20:24:57 Error reading broker response: invalid character 'e' in literal true (expecting 'r')
2021/05/11 20:24:57 body: test
✔
sends answer to broker ✔✔✔✔
handles answer error ✔panic: test timed out after 10m0s
goroutine 10 [running]:
testing.(*M).startAlarm.func1()
/usr/local/go/src/testing/testing.go:1514 +0x11c
created by time.goFunc
/usr/local/go/src/time/sleep.go:168 +0x52
goroutine 1 [chan receive, 9 minutes]:
testing.(*T).Run(0xc0000e6c60, 0xd08040, 0x16, 0xd28e78, 0x1)
/usr/local/go/src/testing/testing.go:1096 +0x570
testing.runTests.func1(0xc0000e6c60)
/usr/local/go/src/testing/testing.go:1339 +0xa7
testing.tRunner(0xc0000e6c60, 0xc000133d50)
/usr/local/go/src/testing/testing.go:1050 +0x1ec
testing.runTests(0xc0000c7580, 0x124a120, 0x4, 0x4, 0x0)
/usr/local/go/src/testing/testing.go:1337 +0x595
testing.(*M).Run(0xc00010c200, 0x0)
/usr/local/go/src/testing/testing.go:1252 +0x300
main.main()
_testmain.go:50 +0x224
goroutine 23 [select, 9 minutes]:
github.com/pion/ice/v2.(*Agent).run(0xc000436840, 0xdf7b00, 0xc000415b00, 0xc0000622a0, 0x0, 0x0)
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/agent.go:176 +0x18a
github.com/pion/ice/v2.(*Agent).GetLocalCandidates(0xc000436840, 0x0, 0x0, 0x7, 0xc00002c313, 0x7)
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/agent.go:840 +0x12e
github.com/pion/webrtc/v3.(*ICEGatherer).GetLocalCandidates(0xc00042a630, 0xc0002acb88, 0x4788f7, 0x418040, 0xc0002acb80, 0x4787d7)
/go/pkg/mod/github.com/pion/webrtc/v3@v3.0.15/icegatherer.go:216 +0x90
github.com/pion/webrtc/v3.populateLocalCandidates(0xc00058e380, 0xc00042a630, 0x2, 0x0)
/go/pkg/mod/github.com/pion/webrtc/v3@v3.0.15/sdp.go:255 +0x88
github.com/pion/webrtc/v3.(*PeerConnection).CurrentLocalDescription(0xc0004581c0, 0x0)
/go/pkg/mod/github.com/pion/webrtc/v3@v3.0.15/peerconnection.go:1928 +0x125
github.com/pion/webrtc/v3.(*PeerConnection).LocalDescription(0xc0004581c0, 0xc0002acdd8)
/go/pkg/mod/github.com/pion/webrtc/v3@v3.0.15/peerconnection.go:993 +0x73
git.torproject.org/pluggable-transports/snowflake.git/proxy.(*SignalingServer).sendAnswer(0xc00047d2c0, 0xcffdba, 0x4, 0xc0004581c0, 0x0, 0x0)
/builds/cohosh/snowflake/proxy/snowflake.go:271 +0xe9
git.torproject.org/pluggable-transports/snowflake.git/proxy.TestBrokerInteractions.func1.4()
/builds/cohosh/snowflake/proxy/proxy-go_test.go:418 +0x270
github.com/smartystreets/goconvey/convey.parseAction.func1(0xdfc2c0, 0xc0000933e0)
/go/pkg/mod/github.com/smartystreets/goconvey@v1.6.4/convey/discovery.go:80 +0x3e
github.com/smartystreets/goconvey/convey.(*context).conveyInner(0xc0000933e0, 0xd0700b, 0x14, 0xc000582230)
/go/pkg/mod/github.com/smartystreets/goconvey@v1.6.4/convey/context.go:261 +0x21e
github.com/smartystreets/goconvey/convey.(*context).Convey.func1()
/go/pkg/mod/github.com/smartystreets/goconvey@v1.6.4/convey/context.go:163 +0xa9
github.com/jtolds/gls.(*ContextManager).SetValues.func1(0x0)
/go/pkg/mod/github.com/jtolds/gls@v4.20.0+incompatible/context.go:97 +0x5c5
github.com/jtolds/gls.EnsureGoroutineId(0xc000594300)
/go/pkg/mod/github.com/jtolds/gls@v4.20.0+incompatible/gid.go:19 +0x1b4
github.com/jtolds/gls.(*ContextManager).SetValues(0xc000189750, 0xc0005942a0, 0xc00058e4a0)
/go/pkg/mod/github.com/jtolds/gls@v4.20.0+incompatible/context.go:63 +0x26c
github.com/smartystreets/goconvey/convey.(*context).Convey(0xc000092600, 0xc0002ad688, 0x2, 0x2)
/go/pkg/mod/github.com/smartystreets/goconvey@v1.6.4/convey/context.go:162 +0x329
github.com/smartystreets/goconvey/convey.Convey(0xc0002ad688, 0x2, 0x2)
/go/pkg/mod/github.com/smartystreets/goconvey@v1.6.4/convey/doc.go:77 +0xb0
git.torproject.org/pluggable-transports/snowflake.git/proxy.TestBrokerInteractions.func1()
/builds/cohosh/snowflake/proxy/proxy-go_test.go:407 +0x728
github.com/smartystreets/goconvey/convey.parseAction.func1(0xdfc2c0, 0xc000092600)
/go/pkg/mod/github.com/smartystreets/goconvey@v1.6.4/convey/discovery.go:80 +0x3e
github.com/smartystreets/goconvey/convey.(*context).conveyInner(0xc000092600, 0xd0b399, 0x1b, 0xc0001d89c0)
/go/pkg/mod/github.com/smartystreets/goconvey@v1.6.4/convey/context.go:261 +0x21e
github.com/smartystreets/goconvey/convey.rootConvey.func1()
/go/pkg/mod/github.com/smartystreets/goconvey@v1.6.4/convey/context.go:110 +0x1d1
github.com/jtolds/gls.(*ContextManager).SetValues.func1(0x0)
/go/pkg/mod/github.com/jtolds/gls@v4.20.0+incompatible/context.go:97 +0x5c5
github.com/jtolds/gls.EnsureGoroutineId.func1()
/go/pkg/mod/github.com/jtolds/gls@v4.20.0+incompatible/gid.go:24 +0x46
github.com/jtolds/gls._m(0x0, 0xc0001cefa0)
/go/pkg/mod/github.com/jtolds/gls@v4.20.0+incompatible/stack_tags.go:108 +0x43
github.com/jtolds/gls.github_com_jtolds_gls_markS(0x0, 0xc0001cefa0)
/go/pkg/mod/github.com/jtolds/gls@v4.20.0+incompatible/stack_tags.go:56 +0x43
github.com/jtolds/gls.addStackTag(...)
/go/pkg/mod/github.com/jtolds/gls@v4.20.0+incompatible/stack_tags.go:49
github.com/jtolds/gls.EnsureGoroutineId(0xc0001a7980)
/go/pkg/mod/github.com/jtolds/gls@v4.20.0+incompatible/gid.go:24 +0x171
github.com/jtolds/gls.(*ContextManager).SetValues(0xc000189750, 0xc0001a7920, 0xc0001cef60)
/go/pkg/mod/github.com/jtolds/gls@v4.20.0+incompatible/context.go:63 +0x26c
github.com/smartystreets/goconvey/convey.rootConvey(0xc00005ae90, 0x3, 0x3)
/go/pkg/mod/github.com/smartystreets/goconvey@v1.6.4/convey/context.go:105 +0x458
github.com/smartystreets/goconvey/convey.Convey(0xc00005ae90, 0x3, 0x3)
/go/pkg/mod/github.com/smartystreets/goconvey@v1.6.4/convey/doc.go:75 +0xe1
git.torproject.org/pluggable-transports/snowflake.git/proxy.TestBrokerInteractions(0xc0001e8480)
/builds/cohosh/snowflake/proxy/proxy-go_test.go:339 +0xa7
testing.tRunner(0xc0001e8480, 0xd28e78)
/usr/local/go/src/testing/testing.go:1050 +0x1ec
created by testing.(*T).Run
/usr/local/go/src/testing/testing.go:1095 +0x538
goroutine 24 [select]:
github.com/pion/interceptor/pkg/nack.(*GeneratorInterceptor).loop(0xc0000de550, 0xdecd40, 0xc0001d9710)
/go/pkg/mod/github.com/pion/interceptor@v0.0.10/pkg/nack/generator_interceptor.go:126 +0x240
created by github.com/pion/interceptor/pkg/nack.(*GeneratorInterceptor).BindRTCPWriter
/go/pkg/mod/github.com/pion/interceptor@v0.0.10/pkg/nack/generator_interceptor.go:65 +0x14b
goroutine 25 [select]:
github.com/pion/interceptor/pkg/report.(*ReceiverInterceptor).loop(0xc000192540, 0xdecd40, 0xc0001d9710)
/go/pkg/mod/github.com/pion/interceptor@v0.0.10/pkg/report/receiver_interceptor.go:87 +0x277
created by github.com/pion/interceptor/pkg/report.(*ReceiverInterceptor).BindRTCPWriter
/go/pkg/mod/github.com/pion/interceptor@v0.0.10/pkg/report/receiver_interceptor.go:77 +0x14b
goroutine 26 [select]:
github.com/pion/interceptor/pkg/report.(*SenderInterceptor).loop(0xc0001925b0, 0xdecd40, 0xc0001d9710)
/go/pkg/mod/github.com/pion/interceptor@v0.0.10/pkg/report/sender_interceptor.go:97 +0x277
created by github.com/pion/interceptor/pkg/report.(*SenderInterceptor).BindRTCPWriter
/go/pkg/mod/github.com/pion/interceptor@v0.0.10/pkg/report/sender_interceptor.go:87 +0x14b
goroutine 27 [IO wait, 9 minutes]:
internal/poll.runtime_pollWait(0x7fc7672970f8, 0x72, 0xded640)
/usr/local/go/src/runtime/netpoll.go:203 +0x55
internal/poll.(*pollDesc).wait(0xc00010ce18, 0x72, 0xcc7600, 0x0, 0x0)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0xe4
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).RawRead(0xc00010ce00, 0xc0001fb230, 0x0, 0x0)
/usr/local/go/src/internal/poll/fd_unix.go:534 +0x17e
net.(*rawConn).Read(0xc0000b46e0, 0xc0001fb230, 0x1, 0x1)
/usr/local/go/src/net/rawconn.go:43 +0x6f
golang.org/x/net/internal/socket.(*Conn).recvMsg(0xc0001ff420, 0xc00005ad70, 0x0, 0x0, 0x0)
/go/pkg/mod/golang.org/x/net@v0.0.0-20210316092652-d523dce5a7f4/internal/socket/rawconn_msg.go:33 +0x3e2
golang.org/x/net/internal/socket.(*Conn).RecvMsg(...)
/go/pkg/mod/golang.org/x/net@v0.0.0-20210316092652-d523dce5a7f4/internal/socket/socket.go:247
golang.org/x/net/ipv4.(*payloadHandler).ReadFrom(0xc0000df870, 0xc0001a4400, 0x200, 0x200, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
/go/pkg/mod/golang.org/x/net@v0.0.0-20210316092652-d523dce5a7f4/ipv4/payload_cmsg.go:32 +0x211
github.com/pion/mdns.(*Conn).start(0xc00010d000)
/go/pkg/mod/github.com/pion/mdns@v0.0.4/conn.go:256 +0x175
created by github.com/pion/mdns.Server
/go/pkg/mod/github.com/pion/mdns@v0.0.4/conn.go:98 +0x714
goroutine 28 [select]:
github.com/pion/ice/v2.(*Agent).taskLoop(0xc0000f6dc0)
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/agent.go:218 +0x24b
created by github.com/pion/ice/v2.NewAgent
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/agent.go:349 +0x11f7
goroutine 29 [chan receive, 9 minutes]:
github.com/pion/ice/v2.(*Agent).startOnConnectionStateChangeRoutine.func1(0xc0000f6dc0)
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/agent.go:405 +0x83
created by github.com/pion/ice/v2.(*Agent).startOnConnectionStateChangeRoutine
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/agent.go:401 +0x4d
goroutine 30 [select, 9 minutes]:
github.com/pion/ice/v2.(*Agent).startOnConnectionStateChangeRoutine.func2(0xc0000f6dc0)
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/agent.go:414 +0x15a
created by github.com/pion/ice/v2.(*Agent).startOnConnectionStateChangeRoutine
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/agent.go:412 +0x6f
goroutine 35 [select, 9 minutes]:
context.propagateCancel.func1(0xdf7b00, 0xc00009cfc0, 0xdf0920, 0xc0002bc3c0)
/usr/local/go/src/context/context.go:276 +0x10f
created by context.propagateCancel
/usr/local/go/src/context/context.go:275 +0x271
goroutine 34 [select]:
github.com/pion/ice/v2.(*Agent).connectivityChecks(0xc0000f6dc0)
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/agent.go:531 +0x364
created by github.com/pion/ice/v2.(*Agent).startConnectivityChecks.func1
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/agent.go:472 +0x331
goroutine 33 [select, 9 minutes]:
github.com/pion/ice/v2.(*Agent).connect(0xc0000f6dc0, 0xdf7380, 0xc0002bc0c0, 0xc0002bc000, 0xc0001ef02a, 0x4, 0xc0001fc3c8, 0x18, 0x0, 0x0, ...)
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/transport.go:53 +0x231
github.com/pion/ice/v2.(*Agent).Accept(...)
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/transport.go:21
github.com/pion/webrtc/v3.(*ICETransport).Start(0xc0001cca00, 0xc000180750, 0xc0001ef02a, 0x4, 0xc0001fc3c8, 0x18, 0x0, 0xc00005bea0, 0x0, 0x0)
/go/pkg/mod/github.com/pion/webrtc/v3@v3.0.15/icetransport.go:137 +0x46e
github.com/pion/webrtc/v3.(*PeerConnection).startTransports(0xc0001f6000, 0x2, 0xc0ffffff01, 0xc0001ef02a, 0x4, 0xc0001fc3c8, 0x18, 0xc0000b1314, 0x5f, 0xc0000b130c, ...)
/go/pkg/mod/github.com/pion/webrtc/v3@v3.0.15/peerconnection.go:2054 +0x169
github.com/pion/webrtc/v3.(*PeerConnection).SetRemoteDescription.func2()
/go/pkg/mod/github.com/pion/webrtc/v3@v3.0.15/peerconnection.go:1142 +0x17b
github.com/pion/webrtc/v3.(*operations).start(0xc0001a7c50)
/go/pkg/mod/github.com/pion/webrtc/v3@v3.0.15/operations.go:84 +0x7c
created by github.com/pion/webrtc/v3.(*operations).Enqueue
/go/pkg/mod/github.com/pion/webrtc/v3@v3.0.15/operations.go:35 +0x19a
goroutine 4 [select, 9 minutes]:
github.com/pion/ice/v2.(*Agent).run(0xc000436840, 0xdf7b00, 0xc000415b00, 0xc00000e380, 0xc00052a648, 0x4887d7)
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/agent.go:176 +0x18a
github.com/pion/ice/v2.(*Agent).connectivityChecks.func1()
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/agent.go:481 +0x143
github.com/pion/ice/v2.(*Agent).connectivityChecks(0xc000436840)
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/agent.go:534 +0x41c
created by github.com/pion/ice/v2.(*Agent).startConnectivityChecks.func1
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/agent.go:472 +0x331
goroutine 40 [select]:
github.com/pion/interceptor/pkg/nack.(*GeneratorInterceptor).loop(0xc0000dff90, 0xdecd40, 0xc0002dabf0)
/go/pkg/mod/github.com/pion/interceptor@v0.0.10/pkg/nack/generator_interceptor.go:126 +0x240
created by github.com/pion/interceptor/pkg/nack.(*GeneratorInterceptor).BindRTCPWriter
/go/pkg/mod/github.com/pion/interceptor@v0.0.10/pkg/nack/generator_interceptor.go:65 +0x14b
goroutine 41 [select]:
github.com/pion/interceptor/pkg/report.(*ReceiverInterceptor).loop(0xc000192f50, 0xdecd40, 0xc0002dabf0)
/go/pkg/mod/github.com/pion/interceptor@v0.0.10/pkg/report/receiver_interceptor.go:87 +0x277
created by github.com/pion/interceptor/pkg/report.(*ReceiverInterceptor).BindRTCPWriter
/go/pkg/mod/github.com/pion/interceptor@v0.0.10/pkg/report/receiver_interceptor.go:77 +0x14b
goroutine 42 [select]:
github.com/pion/interceptor/pkg/report.(*SenderInterceptor).loop(0xc000192fc0, 0xdecd40, 0xc0002dabf0)
/go/pkg/mod/github.com/pion/interceptor@v0.0.10/pkg/report/sender_interceptor.go:97 +0x277
created by github.com/pion/interceptor/pkg/report.(*SenderInterceptor).BindRTCPWriter
/go/pkg/mod/github.com/pion/interceptor@v0.0.10/pkg/report/sender_interceptor.go:87 +0x14b
goroutine 43 [IO wait, 9 minutes]:
internal/poll.runtime_pollWait(0x7fc767296bb8, 0x72, 0xded640)
/usr/local/go/src/runtime/netpoll.go:203 +0x55
internal/poll.(*pollDesc).wait(0xc00010d898, 0x72, 0x7fc76685b300, 0x0, 0x0)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0xe4
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).RawRead(0xc00010d880, 0xc000412000, 0x0, 0x0)
/usr/local/go/src/internal/poll/fd_unix.go:534 +0x17e
net.(*rawConn).Read(0xc0000b4790, 0xc000412000, 0x1, 0x1)
/usr/local/go/src/net/rawconn.go:43 +0x6f
golang.org/x/net/internal/socket.(*Conn).recvMsg(0xc0002f4260, 0xc00038fd70, 0x0, 0x0, 0x10)
/go/pkg/mod/golang.org/x/net@v0.0.0-20210316092652-d523dce5a7f4/internal/socket/rawconn_msg.go:33 +0x3e2
golang.org/x/net/internal/socket.(*Conn).RecvMsg(...)
/go/pkg/mod/golang.org/x/net@v0.0.0-20210316092652-d523dce5a7f4/internal/socket/socket.go:247
golang.org/x/net/ipv4.(*payloadHandler).ReadFrom(0xc0002dd1e0, 0xc000408000, 0x200, 0x200, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
/go/pkg/mod/golang.org/x/net@v0.0.0-20210316092652-d523dce5a7f4/ipv4/payload_cmsg.go:32 +0x211
github.com/pion/mdns.(*Conn).start(0xc00010da80)
/go/pkg/mod/github.com/pion/mdns@v0.0.4/conn.go:256 +0x175
created by github.com/pion/mdns.Server
/go/pkg/mod/github.com/pion/mdns@v0.0.4/conn.go:98 +0x714
goroutine 44 [select]:
github.com/pion/ice/v2.(*Agent).taskLoop(0xc0000f7340)
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/agent.go:218 +0x24b
created by github.com/pion/ice/v2.NewAgent
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/agent.go:349 +0x11f7
goroutine 45 [chan receive, 9 minutes]:
github.com/pion/ice/v2.(*Agent).startOnConnectionStateChangeRoutine.func1(0xc0000f7340)
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/agent.go:405 +0x83
created by github.com/pion/ice/v2.(*Agent).startOnConnectionStateChangeRoutine
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/agent.go:401 +0x4d
goroutine 46 [select, 9 minutes]:
github.com/pion/ice/v2.(*Agent).startOnConnectionStateChangeRoutine.func2(0xc0000f7340)
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/agent.go:414 +0x15a
created by github.com/pion/ice/v2.(*Agent).startOnConnectionStateChangeRoutine
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/agent.go:412 +0x6f
goroutine 82 [select]:
github.com/pion/ice/v2.(*Agent).connectivityChecks(0xc0000f7340)
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/agent.go:531 +0x364
created by github.com/pion/ice/v2.(*Agent).startConnectivityChecks.func1
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/agent.go:472 +0x331
goroutine 49 [select, 9 minutes]:
github.com/pion/ice/v2.(*Agent).connect(0xc0000f7340, 0xdf7380, 0xc00040a040, 0xc00040a000, 0xc0002d31fa, 0x4, 0xc0001fd8e8, 0x18, 0x0, 0x0, ...)
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/transport.go:53 +0x231
github.com/pion/ice/v2.(*Agent).Accept(...)
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/transport.go:21
github.com/pion/webrtc/v3.(*ICETransport).Start(0xc0001cd2c0, 0xc000180bd0, 0xc0002d31fa, 0x4, 0xc0001fd8e8, 0x18, 0x0, 0xc000390ea0, 0x0, 0x0)
/go/pkg/mod/github.com/pion/webrtc/v3@v3.0.15/icetransport.go:137 +0x46e
github.com/pion/webrtc/v3.(*PeerConnection).startTransports(0xc0001f61c0, 0x2, 0xc0ffffff01, 0xc0002d31fa, 0x4, 0xc0001fd8e8, 0x18, 0xc0000b1d14, 0x5f, 0xc0000b1d0c, ...)
/go/pkg/mod/github.com/pion/webrtc/v3@v3.0.15/peerconnection.go:2054 +0x169
github.com/pion/webrtc/v3.(*PeerConnection).SetRemoteDescription.func2()
/go/pkg/mod/github.com/pion/webrtc/v3@v3.0.15/peerconnection.go:1142 +0x17b
github.com/pion/webrtc/v3.(*operations).start(0xc0001fbbf0)
/go/pkg/mod/github.com/pion/webrtc/v3@v3.0.15/operations.go:84 +0x7c
created by github.com/pion/webrtc/v3.(*operations).Enqueue
/go/pkg/mod/github.com/pion/webrtc/v3@v3.0.15/operations.go:35 +0x19a
goroutine 98 [select, 9 minutes]:
context.propagateCancel.func1(0xdf7b00, 0xc0002f6000, 0xdf0920, 0xc0002bd2c0)
/usr/local/go/src/context/context.go:276 +0x10f
created by context.propagateCancel
/usr/local/go/src/context/context.go:275 +0x271
goroutine 83 [select]:
github.com/pion/interceptor/pkg/nack.(*GeneratorInterceptor).loop(0xc000404230, 0xdecd40, 0xc00040ceb0)
/go/pkg/mod/github.com/pion/interceptor@v0.0.10/pkg/nack/generator_interceptor.go:126 +0x240
created by github.com/pion/interceptor/pkg/nack.(*GeneratorInterceptor).BindRTCPWriter
/go/pkg/mod/github.com/pion/interceptor@v0.0.10/pkg/nack/generator_interceptor.go:65 +0x14b
goroutine 84 [select]:
github.com/pion/interceptor/pkg/report.(*ReceiverInterceptor).loop(0xc00041e0e0, 0xdecd40, 0xc00040ceb0)
/go/pkg/mod/github.com/pion/interceptor@v0.0.10/pkg/report/receiver_interceptor.go:87 +0x277
created by github.com/pion/interceptor/pkg/report.(*ReceiverInterceptor).BindRTCPWriter
/go/pkg/mod/github.com/pion/interceptor@v0.0.10/pkg/report/receiver_interceptor.go:77 +0x14b
goroutine 85 [select]:
github.com/pion/interceptor/pkg/report.(*SenderInterceptor).loop(0xc00041e150, 0xdecd40, 0xc00040ceb0)
/go/pkg/mod/github.com/pion/interceptor@v0.0.10/pkg/report/sender_interceptor.go:97 +0x277
created by github.com/pion/interceptor/pkg/report.(*SenderInterceptor).BindRTCPWriter
/go/pkg/mod/github.com/pion/interceptor@v0.0.10/pkg/report/sender_interceptor.go:87 +0x14b
goroutine 86 [IO wait, 9 minutes]:
internal/poll.runtime_pollWait(0x7fc767296e58, 0x72, 0xded640)
/usr/local/go/src/runtime/netpoll.go:203 +0x55
internal/poll.(*pollDesc).wait(0xc000420498, 0x72, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0xe4
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).RawRead(0xc000420480, 0xc0004139e0, 0x0, 0x0)
/usr/local/go/src/internal/poll/fd_unix.go:534 +0x17e
net.(*rawConn).Read(0xc000406048, 0xc0004139e0, 0x1, 0x1)
/usr/local/go/src/net/rawconn.go:43 +0x6f
golang.org/x/net/internal/socket.(*Conn).recvMsg(0xc00047c160, 0xc000391d70, 0x0, 0x0, 0x0)
/go/pkg/mod/golang.org/x/net@v0.0.0-20210316092652-d523dce5a7f4/internal/socket/rawconn_msg.go:33 +0x3e2
golang.org/x/net/internal/socket.(*Conn).RecvMsg(...)
/go/pkg/mod/golang.org/x/net@v0.0.0-20210316092652-d523dce5a7f4/internal/socket/socket.go:247
golang.org/x/net/ipv4.(*payloadHandler).ReadFrom(0xc000405460, 0xc000408600, 0x200, 0x200, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
/go/pkg/mod/golang.org/x/net@v0.0.0-20210316092652-d523dce5a7f4/ipv4/payload_cmsg.go:32 +0x211
github.com/pion/mdns.(*Conn).start(0xc000420680)
/go/pkg/mod/github.com/pion/mdns@v0.0.4/conn.go:256 +0x175
created by github.com/pion/mdns.Server
/go/pkg/mod/github.com/pion/mdns@v0.0.4/conn.go:98 +0x714
goroutine 87 [select]:
github.com/pion/ice/v2.(*Agent).taskLoop(0xc0004362c0)
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/agent.go:218 +0x24b
created by github.com/pion/ice/v2.NewAgent
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/agent.go:349 +0x11f7
goroutine 88 [chan receive, 9 minutes]:
github.com/pion/ice/v2.(*Agent).startOnConnectionStateChangeRoutine.func1(0xc0004362c0)
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/agent.go:405 +0x83
created by github.com/pion/ice/v2.(*Agent).startOnConnectionStateChangeRoutine
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/agent.go:401 +0x4d
goroutine 89 [select, 9 minutes]:
github.com/pion/ice/v2.(*Agent).startOnConnectionStateChangeRoutine.func2(0xc0004362c0)
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/agent.go:414 +0x15a
created by github.com/pion/ice/v2.(*Agent).startOnConnectionStateChangeRoutine
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/agent.go:412 +0x6f
goroutine 93 [select, 9 minutes]:
context.propagateCancel.func1(0xdf7b00, 0xc000414a20, 0xdf0920, 0xc00040b000)
/usr/local/go/src/context/context.go:276 +0x10f
created by context.propagateCancel
/usr/local/go/src/context/context.go:275 +0x271
goroutine 92 [select, 9 minutes]:
github.com/pion/ice/v2.(*Agent).connect(0xc0004362c0, 0xdf7380, 0xc00040ad80, 0xc00040ad00, 0xc00041125a, 0x4, 0xc00040ee88, 0x18, 0x0, 0x0, ...)
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/transport.go:53 +0x231
github.com/pion/ice/v2.(*Agent).Accept(...)
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/transport.go:21
github.com/pion/webrtc/v3.(*ICETransport).Start(0xc0004600a0, 0xc00042a1b0, 0xc00041125a, 0x4, 0xc00040ee88, 0x18, 0x0, 0xc000512ea0, 0x0, 0x0)
/go/pkg/mod/github.com/pion/webrtc/v3@v3.0.15/icetransport.go:137 +0x46e
github.com/pion/webrtc/v3.(*PeerConnection).startTransports(0xc000458000, 0x2, 0xc0ffffff01, 0xc00041125a, 0x4, 0xc00040ee88, 0x18, 0xc000416694, 0x5f, 0xc00041668c, ...)
/go/pkg/mod/github.com/pion/webrtc/v3@v3.0.15/peerconnection.go:2054 +0x169
github.com/pion/webrtc/v3.(*PeerConnection).SetRemoteDescription.func2()
/go/pkg/mod/github.com/pion/webrtc/v3@v3.0.15/peerconnection.go:1142 +0x17b
github.com/pion/webrtc/v3.(*operations).start(0xc000412480)
/go/pkg/mod/github.com/pion/webrtc/v3@v3.0.15/operations.go:84 +0x7c
created by github.com/pion/webrtc/v3.(*operations).Enqueue
/go/pkg/mod/github.com/pion/webrtc/v3@v3.0.15/operations.go:35 +0x19a
goroutine 95 [select]:
github.com/pion/ice/v2.(*Agent).connectivityChecks(0xc0004362c0)
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/agent.go:531 +0x364
created by github.com/pion/ice/v2.(*Agent).startConnectivityChecks.func1
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/agent.go:472 +0x331
goroutine 117 [select]:
github.com/pion/interceptor/pkg/nack.(*GeneratorInterceptor).loop(0xc000405b80, 0xdecd40, 0xc0005465d0)
/go/pkg/mod/github.com/pion/interceptor@v0.0.10/pkg/nack/generator_interceptor.go:126 +0x240
created by github.com/pion/interceptor/pkg/nack.(*GeneratorInterceptor).BindRTCPWriter
/go/pkg/mod/github.com/pion/interceptor@v0.0.10/pkg/nack/generator_interceptor.go:65 +0x14b
goroutine 118 [select]:
github.com/pion/interceptor/pkg/report.(*ReceiverInterceptor).loop(0xc00041ebd0, 0xdecd40, 0xc0005465d0)
/go/pkg/mod/github.com/pion/interceptor@v0.0.10/pkg/report/receiver_interceptor.go:87 +0x277
created by github.com/pion/interceptor/pkg/report.(*ReceiverInterceptor).BindRTCPWriter
/go/pkg/mod/github.com/pion/interceptor@v0.0.10/pkg/report/receiver_interceptor.go:77 +0x14b
goroutine 119 [select]:
github.com/pion/interceptor/pkg/report.(*SenderInterceptor).loop(0xc00041ec40, 0xdecd40, 0xc0005465d0)
/go/pkg/mod/github.com/pion/interceptor@v0.0.10/pkg/report/sender_interceptor.go:97 +0x277
created by github.com/pion/interceptor/pkg/report.(*SenderInterceptor).BindRTCPWriter
/go/pkg/mod/github.com/pion/interceptor@v0.0.10/pkg/report/sender_interceptor.go:87 +0x14b
goroutine 120 [IO wait, 9 minutes]:
internal/poll.runtime_pollWait(0x7fc767296678, 0x72, 0xded640)
/usr/local/go/src/runtime/netpoll.go:203 +0x55
internal/poll.(*pollDesc).wait(0xc000421418, 0x72, 0x7fc7666c3b00, 0x0, 0x0)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0xe4
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).RawRead(0xc000421400, 0xc000594000, 0x0, 0x0)
/usr/local/go/src/internal/poll/fd_unix.go:534 +0x17e
net.(*rawConn).Read(0xc000406100, 0xc000594000, 0x1, 0x1)
/usr/local/go/src/net/rawconn.go:43 +0x6f
golang.org/x/net/internal/socket.(*Conn).recvMsg(0xc0005491e0, 0xc00058ad70, 0x0, 0x0, 0x10)
/go/pkg/mod/golang.org/x/net@v0.0.0-20210316092652-d523dce5a7f4/internal/socket/rawconn_msg.go:33 +0x3e2
golang.org/x/net/internal/socket.(*Conn).RecvMsg(...)
/go/pkg/mod/golang.org/x/net@v0.0.0-20210316092652-d523dce5a7f4/internal/socket/socket.go:247
golang.org/x/net/ipv4.(*payloadHandler).ReadFrom(0xc000544e20, 0xc000584000, 0x200, 0x200, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
/go/pkg/mod/golang.org/x/net@v0.0.0-20210316092652-d523dce5a7f4/ipv4/payload_cmsg.go:32 +0x211
github.com/pion/mdns.(*Conn).start(0xc000421600)
/go/pkg/mod/github.com/pion/mdns@v0.0.4/conn.go:256 +0x175
created by github.com/pion/mdns.Server
/go/pkg/mod/github.com/pion/mdns@v0.0.4/conn.go:98 +0x714
goroutine 121 [chan send, 9 minutes]:
github.com/pion/ice/v2.(*Agent).addCandidate.func1(0xdf7b00, 0xc000415b00, 0xc000436840)
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/agent.go:832 +0x658
github.com/pion/ice/v2.(*Agent).taskLoop(0xc000436840)
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/agent.go:222 +0x116
created by github.com/pion/ice/v2.NewAgent
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/agent.go:349 +0x11f7
goroutine 122 [chan receive, 9 minutes]:
github.com/pion/ice/v2.(*Agent).startOnConnectionStateChangeRoutine.func1(0xc000436840)
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/agent.go:405 +0x83
created by github.com/pion/ice/v2.(*Agent).startOnConnectionStateChangeRoutine
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/agent.go:401 +0x4d
goroutine 123 [semacquire, 9 minutes]:
sync.runtime_SemacquireMutex(0xc0004581d4, 0x900000000, 0x1)
/usr/local/go/src/runtime/sema.go:71 +0x47
sync.(*Mutex).lockSlow(0xc0004581d0)
/usr/local/go/src/sync/mutex.go:138 +0x1c1
sync.(*Mutex).Lock(0xc0004581d0)
/usr/local/go/src/sync/mutex.go:81 +0x7d
sync.(*RWMutex).Lock(0xc0004581d0)
/usr/local/go/src/sync/rwmutex.go:98 +0x4a
github.com/pion/webrtc/v3.(*PeerConnection).onICEConnectionStateChange(0xc0004581c0, 0x2)
/go/pkg/mod/github.com/pion/webrtc/v3@v3.0.15/peerconnection.go:467 +0x48
github.com/pion/webrtc/v3.(*PeerConnection).createICETransport.func1(0x2)
/go/pkg/mod/github.com/pion/webrtc/v3@v3.0.15/peerconnection.go:777 +0x6f
github.com/pion/webrtc/v3.(*ICETransport).onConnectionStateChange(0xc000460aa0, 0x2)
/go/pkg/mod/github.com/pion/webrtc/v3@v3.0.15/icetransport.go:221 +0x6c
github.com/pion/webrtc/v3.(*ICETransport).Start.func1(0x2)
/go/pkg/mod/github.com/pion/webrtc/v3@v3.0.15/icetransport.go:101 +0xad
github.com/pion/ice/v2.(*Agent).onConnectionStateChange(0xc000436840, 0x2)
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/agent.go:396 +0x77
github.com/pion/ice/v2.(*Agent).startOnConnectionStateChangeRoutine.func2(0xc000436840)
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/agent.go:422 +0x18c
created by github.com/pion/ice/v2.(*Agent).startOnConnectionStateChangeRoutine
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/agent.go:412 +0x6f
goroutine 132 [select, 9 minutes]:
github.com/pion/ice/v2.(*Agent).connect(0xc000436840, 0xdf7380, 0xc000020180, 0xc000020100, 0xc00051762a, 0x4, 0xc0005425e8, 0x18, 0x0, 0x0, ...)
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/transport.go:53 +0x231
github.com/pion/ice/v2.(*Agent).Accept(...)
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/transport.go:21
github.com/pion/webrtc/v3.(*ICETransport).Start(0xc000460aa0, 0xc00042a630, 0xc00051762a, 0x4, 0xc0005425e8, 0x18, 0x0, 0xc000060ea0, 0x0, 0x0)
/go/pkg/mod/github.com/pion/webrtc/v3@v3.0.15/icetransport.go:137 +0x46e
github.com/pion/webrtc/v3.(*PeerConnection).startTransports(0xc0004581c0, 0x2, 0xc0ffffff01, 0xc00051762a, 0x4, 0xc0005425e8, 0x18, 0xc000417594, 0x5f, 0xc00041758c, ...)
/go/pkg/mod/github.com/pion/webrtc/v3@v3.0.15/peerconnection.go:2054 +0x169
github.com/pion/webrtc/v3.(*PeerConnection).SetRemoteDescription.func2()
/go/pkg/mod/github.com/pion/webrtc/v3@v3.0.15/peerconnection.go:1142 +0x17b
github.com/pion/webrtc/v3.(*operations).start(0xc00051a540)
/go/pkg/mod/github.com/pion/webrtc/v3@v3.0.15/operations.go:84 +0x7c
created by github.com/pion/webrtc/v3.(*operations).Enqueue
/go/pkg/mod/github.com/pion/webrtc/v3@v3.0.15/operations.go:35 +0x19a
goroutine 133 [select, 9 minutes]:
context.propagateCancel.func1(0xdf7b00, 0xc000415b00, 0xdf0920, 0xc000590280)
/usr/local/go/src/context/context.go:276 +0x10f
created by context.propagateCancel
/usr/local/go/src/context/context.go:275 +0x271
goroutine 134 [semacquire, 9 minutes]:
sync.runtime_Semacquire(0xc000580488)
/usr/local/go/src/runtime/sema.go:56 +0x42
sync.(*WaitGroup).Wait(0xc000580480)
/usr/local/go/src/sync/waitgroup.go:130 +0xd4
github.com/pion/ice/v2.(*Agent).gatherCandidates(0xc000436840, 0xdf7380, 0xc000590280)
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/gather.go:120 +0x3ca
created by github.com/pion/ice/v2.(*Agent).GatherCandidates.func1
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/gather.go:75 +0x1b3
goroutine 135 [chan receive, 9 minutes]:
github.com/pion/ice/v2.(*Agent).run(0xc000436840, 0xdf7380, 0xc000590280, 0xc0005943f0, 0x70dfad, 0xc0005b8180)
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/agent.go:180 +0x1b5
github.com/pion/ice/v2.(*Agent).addCandidate(0xc000436840, 0xdf7380, 0xc000590280, 0xdff720, 0xc000598b60, 0xdfaa60, 0xc00059e020, 0xc000594360, 0xdfcc20)
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/agent.go:808 +0x11c
github.com/pion/ice/v2.(*Agent).gatherCandidatesLocal(0xc000436840, 0xdf7380, 0xc000590280, 0xc000517950, 0x2, 0x2)
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/gather.go:210 +0x64f
github.com/pion/ice/v2.(*Agent).gatherCandidates.func1(0xc000436840, 0xdf7380, 0xc000590280, 0xc000580480)
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/gather.go:94 +0x8c
created by github.com/pion/ice/v2.(*Agent).gatherCandidates
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/gather.go:93 +0x1a0
goroutine 136 [semacquire, 9 minutes]:
sync.runtime_Semacquire(0xc000684018)
/usr/local/go/src/runtime/sema.go:56 +0x42
sync.(*WaitGroup).Wait(0xc000684010)
/usr/local/go/src/sync/waitgroup.go:130 +0xd4
github.com/pion/ice/v2.(*Agent).gatherCandidatesSrflx(0xc000436840, 0xdf7380, 0xc000590280, 0xc0004060d8, 0x1, 0x1, 0xc000517950, 0x2, 0x2)
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/gather.go:333 +0x2ea
github.com/pion/ice/v2.(*Agent).gatherCandidates.func2(0xc000436840, 0xdf7380, 0xc000590280, 0xc000580480)
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/gather.go:100 +0xe6
created by github.com/pion/ice/v2.(*Agent).gatherCandidates
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/gather.go:99 +0x2ab
goroutine 138 [IO wait, 9 minutes]:
internal/poll.runtime_pollWait(0x7fc767296758, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:203 +0x55
internal/poll.(*pollDesc).wait(0xc00059c218, 0x72, 0x2000, 0x2000, 0x0)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0xe4
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).ReadFrom(0xc00059c200, 0xc0005c6000, 0x2000, 0x2000, 0x0, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/fd_unix.go:219 +0x228
net.(*netFD).readFrom(0xc00059c200, 0xc0005c6000, 0x2000, 0x2000, 0xc000526da8, 0xcea4e30c8d38f, 0x0, 0x0, 0x2)
/usr/local/go/src/net/fd_unix.go:208 +0x7a
net.(*UDPConn).readFrom(0xc00059e020, 0xc0005c6000, 0x2000, 0x2000, 0xc000415b60, 0x7fc76741c2f0, 0x0, 0xc0005c6000)
/usr/local/go/src/net/udpsock_posix.go:47 +0x8e
net.(*UDPConn).ReadFrom(0xc00059e020, 0xc0005c6000, 0x2000, 0x2000, 0xc000526e00, 0x4b5ab5, 0x4ba056, 0xc000526f70, 0x4ba060)
/usr/local/go/src/net/udpsock.go:118 +0x95
github.com/pion/ice/v2.(*candidateBase).recvLoop(0xc000598b60, 0xc000415b60)
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/candidate_base.go:222 +0x2d5
created by github.com/pion/ice/v2.(*candidateBase).start
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/candidate_base.go:205 +0x19f
goroutine 146 [select, 9 minutes]:
github.com/pion/ice/v2.(*Agent).run(0xc000436840, 0xdf7380, 0xc000590280, 0xc0000ab6e0, 0xc000209c60, 0x43c995)
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/agent.go:176 +0x18a
github.com/pion/ice/v2.(*Agent).addCandidate(0xc000436840, 0xdf7380, 0xc000590280, 0xdff9c0, 0xc0002760c0, 0xdfaa60, 0xc000010020, 0x0, 0xdfcc20)
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/agent.go:808 +0x11c
github.com/pion/ice/v2.(*Agent).gatherCandidatesSrflx.func1(0xc000684010, 0xc000436840, 0xdf7380, 0xc000590280, 0x1, 0xd0c6f3, 0x11, 0x4b66, 0x0, 0x0, ...)
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/gather.go:324 +0xf0e
created by github.com/pion/ice/v2.(*Agent).gatherCandidatesSrflx
/go/pkg/mod/github.com/pion/ice/v2@v2.0.15/gather.go:285 +0x2af
FAIL git.torproject.org/pluggable-transports/snowflake.git/proxy 600.055s
? git.torproject.org/pluggable-transports/snowflake.git/server [no test files]
```https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40045IPtProxy/Onion Browser: Snowflake client just stops with errors when bootstra...2021-05-26T12:34:08ZtlaIPtProxy/Onion Browser: Snowflake client just stops with errors when bootstrapping Tor on iOS (and therefore the whole bootstrap)We're experiencing a lot of instability with Snowflake on Android and iOS.
Esp. on iOS, I always seem to get only the "unrestricted" types. What exactly are the preconditions, to get to the "restricted" snowflakes? Is there something we...We're experiencing a lot of instability with Snowflake on Android and iOS.
Esp. on iOS, I always seem to get only the "unrestricted" types. What exactly are the preconditions, to get to the "restricted" snowflakes? Is there something we can do?
Latest IPtProxy currently uses Snowflake at this commit: https://gitweb.torproject.org/pluggable-transports/snowflake.git/commit/?id=af6e2c30e1a6aacc6e7adf9a31df0a387891cc37
While trying to understand, why Snowflake connections are often delayed a long time or not happening at all, I experienced random stops of the code. This is esp. on starting up Onion Browser on iOS.
E.g. see the 2 different logs below.
(It's Onion Browser, Tor and Snowflake combined.)
That's all. That's not just a part. After the last log line, everything stopped.
(If the user wouldn't change bridge settings, that is...)
The change is about 50/50 that it just stops.
Do you have an idea, why that happens?
Interestingly enough, this seems to happen on a real device way more often than on a simulator on an Intel MacBook Pro running Big Sur.
(Note simulator vs. emulator!)
So that might point to a timing issue?
This is our config:
https://github.com/OnionBrowser/OnionBrowser/blob/2.X/OnionBrowser/OnionManager.swift#L245-L248
Is there something we can do to mitigate this in IPtProxy? Some catch-exception-and-restart or something?
```
2021-05-11 17:04:17.463104+0200 OnionBrowser[4397:1863717] [HSTSCache] locked and loaded with 67296 preloaded hosts
[OnionManager] dataDir=file:///var/mobile/Containers/Data/Application/164FD3FE-402A-4A05-A626-1F4F48B6573C/Library/Caches/tor/
[OnionManager] bridgesId=snowflake
[OnionManager] #stopObfs4proxy
2021/05/11 15:04:18
--- Starting Snowflake Client ---
2021/05/11 15:04:18 Using ICE servers:
2021/05/11 15:04:18 url: stun:stun.voipgate.com:3478
2021/05/11 15:04:18 url: stun:stun.uls.co.za:3478
2021/05/11 15:04:18 url: stun:stun.altar.com.pl:3478
2021/05/11 15:04:18 url: stun:stun.voys.nl:3478
2021/05/11 15:04:18 url: stun:stun.dus.net:3478
2021/05/11 15:04:18 url: stun:stun.epygi.com:3478
2021/05/11 15:04:18 url: stun:stun.sonetel.com:3478
2021/05/11 15:04:18 Rendezvous using Broker at: https://snowflake-broker.torproject.net.global.prod.fastly.net/
2021/05/11 15:04:18 Domain fronting using: cdn.sstatic.net
VERSION 1
CMETHOD-ERROR meek_lite no such method
CMETHOD-ERROR obfs2 no such method
CMETHOD-ERROR obfs3 no such method
CMETHOD-ERROR obfs4 no such method
CMETHOD-ERROR scramblesuit no such method
[OnionManager] ipv6_status: 0
[OnionManager] arguments=["--allow-missing-torrc", "--ignore-missing-torrc", "--ClientOnly", "1", "--AvoidDiskWrites", "1", "--SocksPort", "127.0.0.1:39050", "--ControlPort", "127.0.0.1:39060", "--Log", "notice stdout", "--ClientUseIPv6", "1", "--ClientTransportPlugin", "obfs4 socks5 127.0.0.1:47351", "--ClientTransportPlugin", "meek_lite socks5 127.0.0.1:47352", "--ClientTransportPlugin", "snowflake socks5 127.0.0.1:52610", "--GeoIPFile", "/private/var/containers/Bundle/Application/B0BCF18E-0C46-41A6-A093-4B4879EB264C/OnionBrowser.app/geoip", "--GeoIPv6File", "/private/var/containers/Bundle/Application/B0BCF18E-0C46-41A6-A093-4B4879EB264C/OnionBrowser.app/geoip6", "--ClientOnionAuthDir", "/var/mobile/Containers/Data/Application/164FD3FE-402A-4A05-A626-1F4F48B6573C/Library/Caches/tor/auth", "--Bridge", "snowflake 192.0.2.3:1", "--UseBridges", "1", "--ClientPreferIPv6ORPort", "auto", "--ClientUseIPv4", "1"]
[OnionManager] Starting Tor
2021/05/11 15:04:18 Started SOCKS listener at 127.0.0.1:52610.
CMETHOD snowflake socks5 127.0.0.1:52610
CMETHODS DONE
2021-05-11 17:04:18.232173+0200 OnionBrowser[4397:1863717] [Assert] Trying to present the presentation controller while transitioning already. (<_UIRootPresentationController: 0x111d17d30>)
May 11 17:04:18.251 [notice] Tor 0.4.5.7 (git-83f895c015de5520) running on Darwin with Libevent 2.1.12-stable, OpenSSL 1.1.1k, Zlib 1.2.11, Liblzma 5.2.5, Libzstd N/A and Unknown N/A as libc.
May 11 17:04:18.251 [notice] Tor can't help you if you use it wrong! Learn how to be safe at https://www.torproject.org/download/download#warning
May 11 17:04:18.251 [notice] Configuration file "/private/var/mobile/Containers/Data/Application/164FD3FE-402A-4A05-A626-1F4F48B6573C/.torrc" not present, using reasonable defaults.
May 11 17:04:18.256 [notice] Opening Socks listener on 127.0.0.1:39050
May 11 17:04:18.256 [notice] Opened Socks listener connection (ready) on 127.0.0.1:39050
May 11 17:04:18.256 [notice] Opening Control listener on 127.0.0.1:39060
May 11 17:04:18.256 [notice] Opened Control listener connection (ready) on 127.0.0.1:39060
May 11 17:04:18.000 [notice] Parsing GEOIP IPv4 file /private/var/containers/Bundle/Application/B0BCF18E-0C46-41A6-A093-4B4879EB264C/OnionBrowser.app/geoip.
2021/05/11 15:04:18 NAT Type: unrestricted
May 11 17:04:18.000 [notice] Parsing GEOIP IPv6 file /private/var/containers/Bundle/Application/B0BCF18E-0C46-41A6-A093-4B4879EB264C/OnionBrowser.app/geoip6.
May 11 17:04:18.000 [notice] Bootstrapped 0% (starting): Starting
May 11 17:04:18.000 [notice] Starting with guard context "bridges"
May 11 17:04:18.000 [notice] Delaying directory fetches: No running bridges
May 11 17:04:19.000 [notice] New control connection opened from 127.0.0.1.
[OnionManager] cookie= XEkOaClqVqXuS7OS0W9SkYS8Qpf9TxnSdRNrqRZngEA=
May 11 17:04:19.000 [notice] Bootstrapped 1% (conn_pt): Connecting to pluggable transport
May 11 17:04:19.000 [notice] Bootstrapped 2% (conn_done_pt): Connected to pluggable transport
2021/05/11 15:04:19 SOCKS accepted: {192.0.2.3:1 map[]}
2021/05/11 15:04:19 ---- Handler: begin collecting snowflakes ---
2021/05/11 15:04:19 ---- Handler: starting a new session ---
May 11 17:04:19.000 [notice] Bootstrapped 10% (conn_done): Connected to a relay
2021/05/11 15:04:19 WebRTC: Collecting a new Snowflake. Currently at [0/3]
2021/05/11 15:04:19 snowflake-b5939212541b4c43 connecting...
2021/05/11 15:04:19 redialing on same connection
[OnionManager] progress=1
[OnionManager] progress=2
2021/05/11 15:04:19 ---- Handler: begin stream 3 ---
[OnionManager] progress=10
2021/05/11 15:04:20 WebRTC: DataChannel created.
2021/05/11 15:04:20 WebRTC: Created offer
2021/05/11 15:04:20 WebRTC: Set local description
2021/05/11 15:04:20 WebRTC: PeerConnection created.
2021/05/11 15:04:20 Negotiating via BrokerChannel...
Target URL: snowflake-broker.torproject.net.global.prod.fastly.net Front URL: cdn.sstatic.net
2021/05/11 15:04:23 BrokerChannel Response:
200 OK
2021/05/11 15:04:23 Received answer: {"type":"answer","sdp":"v=0\r\no=mozilla...THIS_IS_SDPARTA-87.0 5216436289655477355 0 IN IP4 0.0.0.0\r\ns=-\r\nt=0 0\r\na=sendrecv\r\na=fingerprint:sha-256 E9:DE:10:5F:A8:C9:7F:D1:49:1F:26:49:DF:56:7C:7F:97:C5:DE:DD:EF:D7:E6:6D:DD:E3:66:3F:D2:6F:31:49\r\na=group:BUNDLE 0\r\na=ice-options:trickle\r\na=msid-semantic:WMS *\r\nm=application 46050 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 85.114.140.58\r\na=candidate:0 1 UDP 2122187007 65ea5e9f-adaf-4680-989d-c6b2f66a0d14.local 46050 typ host\r\na=candidate:2 1 UDP 2122252543 5d3245fa-bea1-4e18-ab51-954ee57e291f.local 59991 typ host\r\na=candidate:4 1 TCP 2105458943 65ea5e9f-adaf-4680-989d-c6b2f66a0d14.local 9 typ host tcptype active\r\na=candidate:5 1 TCP 2105524479 5d3245fa-bea1-4e18-ab51-954ee57e291f.local 9 typ host tcptype active\r\na=candidate:1 1 UDP 1685987327 85.114.140.58 46050 typ srflx raddr 0.0.0.0 rport 0\r\na=candidate:3 1 UDP 1686052607 2a01:4f8:191:22f6:77bf:d860:9b03:d768 59991 typ srflx raddr 0.0.0.0 rport 0\r\na=sendrecv\r\na=end-of-candidates\r\na=ice-pwd:b2a69faea3356249fb9abf124a9dfec3\r\na=ice-ufrag:e5f0ed04\r\na=mid:0\r\na=setup:active\r\na=sctp-port:5000\r\na=max-message-size:1073741823\r\n"}
2021/05/11 15:04:23 Received Answer.
2021/05/11 15:04:25 WebRTC: DataChannel.OnOpen
2021/05/11 15:04:25 ---- Handler: snowflake assigned ----
May 11 17:04:26.000 [notice] Bootstrapped 14% (handshake): Handshaking with a relay
[OnionManager] progress=14
May 11 17:04:26.000 [notice] Learned fingerprint 2B280B23E1107BB62ABFC40DDCC8824814F80A72 for bridge 192.0.2.3:1 (with transport 'snowflake').
May 11 17:04:26.000 [notice] Bootstrapped 15% (handshake_done): Handshake with a relay done
May 11 17:04:26.000 [notice] Bootstrapped 20% (onehop_create): Establishing an encrypted directory connection
[OnionManager] progress=15
[OnionManager] progress=20
May 11 17:04:27.000 [notice] Bootstrapped 25% (requesting_status): Asking for networkstatus consensus
[OnionManager] progress=25
May 11 17:04:27.000 [notice] new bridge descriptor 'flakey' (fresh): $2B280B23E1107BB62ABFC40DDCC8824814F80A72~flakey [1zOHpg+FxqQfi/6jDLtCpHHqBTH8gjYmCKXkus1D5Ko] at 192.0.2.3
2021/05/11 15:04:29 Traffic Bytes (in|out): 9355 | 7290 -- (19 OnMessages, 22 Sends)
2021/05/11 15:04:29 WebRTC: Collecting a new Snowflake. Currently at [1/3]
2021/05/11 15:04:29 snowflake-69370291c40e5fbb connecting...
2021/05/11 15:04:29 WebRTC: DataChannel created.
2021/05/11 15:04:29 WebRTC: Created offer
2021/05/11 15:04:29 WebRTC: Set local description
2021/05/11 15:04:29 WebRTC: PeerConnection created.
2021/05/11 15:04:29 Negotiating via BrokerChannel...
Target URL: snowflake-broker.torproject.net.global.prod.fastly.net Front URL: cdn.sstatic.net
[OnionManager] Triggering Tor connection retry.
May 11 17:04:33.000 [notice] Closing no-longer-configured Socks listener on 127.0.0.1:39050
May 11 17:04:33.000 [notice] DisableNetwork is set. Tor will not make or accept non-control network connections. Shutting down all existing connections.
May 11 17:04:33.000 [notice] Opening Socks listener on 127.0.0.1:39050
May 11 17:04:33.000 [notice] Opened Socks listener connection (ready) on 127.0.0.1:39050
2021/05/11 15:04:33 copy loop ended
2021/05/11 15:04:33 ---- Handler: closed stream 3 ---
2021/05/11 15:04:34 BrokerChannel Response:
200 OK
2021/05/11 15:04:34 Received answer: {"type":"answer","sdp":"v=0\r\no=- 7009743295814005219 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=msid-semantic: WMS\r\nm=application 42411 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 85.107.124.19\r\na=candidate:111704799 1 udp 2122260223 192.168.1.34 54705 typ host generation 0 network-id 1 network-cost 10\r\na=candidate:1210811951 1 tcp 1518280447 192.168.1.34 9 typ host tcptype active generation 0 network-id 1 network-cost 10\r\na=candidate:4038591243 1 udp 1686052607 85.107.124.19 42411 typ srflx raddr 192.168.1.34 rport 54705 generation 0 network-id 1 network-cost 10\r\na=ice-ufrag:t5qZ\r\na=ice-pwd:AiKgb8nIocPjprb7/w469Q28\r\na=ice-options:trickle\r\na=fingerprint:sha-256 0E:C5:3A:6E:E7:87:9A:9A:08:13:25:C0:24:2E:92:E7:A6:87:5E:A2:53:9A:AA:3F:96:23:8F:E2:05:26:FE:5D\r\na=setup:active\r\na=mid:0\r\na=sctp-port:5000\r\n"}
2021/05/11 15:04:34 Received Answer.
2021/05/11 15:04:34 Traffic Bytes (in|out): 7168 | 1323 -- (10 OnMessages, 9 Sends)
2021/05/11 15:04:36 WebRTC: DataChannel.OnOpen
2021/05/11 15:04:36 ConnectLoop: stopped.
2021/05/11 15:04:36 WebRTC: closing DataChannel
2021/05/11 15:04:36 WebRTC: closing PeerConnection
2021/05/11 15:04:36 WebRTC: DataChannel.OnClose
2021/05/11 15:04:36 WebRTC: Closing
2021/05/11 15:04:36 WebRTC: closing DataChannel
2021/05/11 15:04:36 redialing on same connection
2021/05/11 15:04:36 WebRTC: closing PeerConnection
2021/05/11 15:04:36 WebRTC: DataChannel.OnClose
2021/05/11 15:04:36 copying WebRTC to SOCKS resulted in error: read dummy dummy->dummy: handler: Received invalid Snowflake
2021/05/11 15:04:36 WebRTC: Closing
2021/05/11 15:04:36 WebRTC: melted all 2 snowflakes.
2021/05/11 15:04:36 ---- Handler: end collecting snowflakes ---
2021/05/11 15:04:36 ---- Handler: discarding finished session ---
2021/05/11 15:04:36 Handler ended
```
```
2021-05-11 17:23:07.954229+0200 OnionBrowser[4416:1871406] [HSTSCache] locked and loaded with 67296 preloaded hosts
[OnionManager] dataDir=file:///var/mobile/Containers/Data/Application/173396C5-9677-4A89-9DBE-A0275AF0102A/Library/Caches/tor/
[OnionManager] bridgesId=snowflake
[OnionManager] #stopObfs4proxy
2021/05/11 15:23:08
--- Starting Snowflake Client ---
2021/05/11 15:23:08 Using ICE servers:
2021/05/11 15:23:08 url: stun:stun.altar.com.pl:3478
2021/05/11 15:23:08 url: stun:stun.antisip.com:3478
2021/05/11 15:23:08 url: stun:stun.voys.nl:3478
2021/05/11 15:23:08 url: stun:stun.voip.blackberry.com:3478
2021/05/11 15:23:08 url: stun:stun.uls.co.za:3478
2021/05/11 15:23:08 url: stun:stun.bluesip.net:3478
2021/05/11 15:23:08 url: stun:stun.voipgate.com:3478
2021/05/11 15:23:08 Rendezvous using Broker at: https://snowflake-broker.torproject.net.global.prod.fastly.net/
2021/05/11 15:23:08 Domain fronting using: cdn.sstatic.net
[OnionManager] ipv6_status: 0
VERSION 1
CMETHOD-ERROR meek_lite no such method
CMETHOD-ERROR obfs2 no such method
CMETHOD-ERROR obfs3 no such method
CMETHOD-ERROR obfs4 no such method
CMETHOD-ERROR scramblesuit no such method
[OnionManager] arguments=["--allow-missing-torrc", "--ignore-missing-torrc", "--ClientOnly", "1", "--AvoidDiskWrites", "1", "--SocksPort", "127.0.0.1:39050", "--ControlPort", "127.0.0.1:39060", "--Log", "notice stdout", "--ClientUseIPv6", "1", "--ClientTransportPlugin", "obfs4 socks5 127.0.0.1:47351", "--ClientTransportPlugin", "meek_lite socks5 127.0.0.1:47352", "--ClientTransportPlugin", "snowflake socks5 127.0.0.1:52610", "--GeoIPFile", "/private/var/containers/Bundle/Application/D62B6AF8-18A6-4C05-95D3-0A1C0AD669DE/OnionBrowser.app/geoip", "--GeoIPv6File", "/private/var/containers/Bundle/Application/D62B6AF8-18A6-4C05-95D3-0A1C0AD669DE/OnionBrowser.app/geoip6", "--ClientOnionAuthDir", "/var/mobile/Containers/Data/Application/173396C5-9677-4A89-9DBE-A0275AF0102A/Library/Caches/tor/auth", "--Bridge", "snowflake 192.0.2.3:1", "--UseBridges", "1", "--ClientPreferIPv6ORPort", "auto", "--ClientUseIPv4", "1"]
2021/05/11 15:23:08 Started SOCKS listener at 127.0.0.1:52610.
CMETHOD snowflake socks5 127.0.0.1:52610
[OnionManager] Starting Tor
CMETHODS DONE
2021-05-11 17:23:08.707322+0200 OnionBrowser[4416:1871406] [Assert] Trying to present the presentation controller while transitioning already. (<_UIRootPresentationController: 0x10850ce10>)
May 11 17:23:08.722 [notice] Tor 0.4.5.7 (git-83f895c015de5520) running on Darwin with Libevent 2.1.12-stable, OpenSSL 1.1.1k, Zlib 1.2.11, Liblzma 5.2.5, Libzstd N/A and Unknown N/A as libc.
May 11 17:23:08.722 [notice] Tor can't help you if you use it wrong! Learn how to be safe at https://www.torproject.org/download/download#warning
May 11 17:23:08.723 [notice] Configuration file "/private/var/mobile/Containers/Data/Application/173396C5-9677-4A89-9DBE-A0275AF0102A/.torrc" not present, using reasonable defaults.
May 11 17:23:08.726 [notice] Opening Socks listener on 127.0.0.1:39050
May 11 17:23:08.726 [notice] Opened Socks listener connection (ready) on 127.0.0.1:39050
May 11 17:23:08.726 [notice] Opening Control listener on 127.0.0.1:39060
May 11 17:23:08.726 [notice] Opened Control listener connection (ready) on 127.0.0.1:39060
May 11 17:23:08.000 [notice] Parsing GEOIP IPv4 file /private/var/containers/Bundle/Application/D62B6AF8-18A6-4C05-95D3-0A1C0AD669DE/OnionBrowser.app/geoip.
2021/05/11 15:23:08 NAT Type: unrestricted
May 11 17:23:08.000 [notice] Parsing GEOIP IPv6 file /private/var/containers/Bundle/Application/D62B6AF8-18A6-4C05-95D3-0A1C0AD669DE/OnionBrowser.app/geoip6.
May 11 17:23:08.000 [notice] Bootstrapped 0% (starting): Starting
May 11 17:23:09.000 [notice] Starting with guard context "bridges"
May 11 17:23:09.000 [notice] Delaying directory fetches: No running bridges
May 11 17:23:09.000 [notice] New control connection opened from 127.0.0.1.
[OnionManager] cookie= tjBUpSa7mqXyVlHo25Xszzu170VQ5Tm2HBfzepFXwqk=
May 11 17:23:10.000 [notice] Bootstrapped 1% (conn_pt): Connecting to pluggable transport
May 11 17:23:10.000 [notice] Bootstrapped 2% (conn_done_pt): Connected to pluggable transport
2021/05/11 15:23:10 SOCKS accepted: {192.0.2.3:1 map[]}
2021/05/11 15:23:10 ---- Handler: begin collecting snowflakes ---
2021/05/11 15:23:10 ---- Handler: starting a new session ---
2021/05/11 15:23:10 WebRTC: Collecting a new Snowflake. Currently at [0/3]
2021/05/11 15:23:10 snowflake-cdad34980557846d connecting...
May 11 17:23:10.000 [notice] Bootstrapped 10% (conn_done): Connected to a relay
2021/05/11 15:23:10 redialing on same connection
2021/05/11 15:23:10 ---- Handler: begin stream 3 ---
2021/05/11 15:23:10 WebRTC: DataChannel created.
2021/05/11 15:23:10 WebRTC: Created offer
2021/05/11 15:23:10 WebRTC: Set local description
2021/05/11 15:23:10 WebRTC: PeerConnection created.
2021/05/11 15:23:10 Negotiating via BrokerChannel...
Target URL: snowflake-broker.torproject.net.global.prod.fastly.net Front URL: cdn.sstatic.net
2021/05/11 15:23:12 BrokerChannel Response:
200 OK
2021/05/11 15:23:12 Received answer: {"type":"answer","sdp":"v=0\r\no=mozilla...THIS_IS_SDPARTA-89.0 3176598337624981171 0 IN IP4 0.0.0.0\r\ns=-\r\nt=0 0\r\na=sendrecv\r\na=fingerprint:sha-256 6B:41:FC:99:15:80:AE:56:9A:B1:31:6B:9A:D1:1D:A4:91:13:71:1D:11:BD:78:15:C8:D9:31:33:03:AE:71:98\r\na=group:BUNDLE 0\r\na=ice-options:trickle\r\na=msid-semantic:WMS *\r\nm=application 61455 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 67.171.207.78\r\na=candidate:0 1 UDP 2122187007 65d476bf-60a6-4ec2-b9bb-99ca00f2c4ac.local 61455 typ host\r\na=candidate:2 1 UDP 2122252543 67213273-8df2-472b-82c5-dff6924d2b2f.local 61456 typ host\r\na=candidate:4 1 TCP 2105458943 65d476bf-60a6-4ec2-b9bb-99ca00f2c4ac.local 9 typ host tcptype active\r\na=candidate:5 1 TCP 2105524479 67213273-8df2-472b-82c5-dff6924d2b2f.local 9 typ host tcptype active\r\na=candidate:1 1 UDP 1685987327 67.171.207.78 61455 typ srflx raddr 0.0.0.0 rport 0\r\na=sendrecv\r\na=end-of-candidates\r\na=ice-pwd:ae2e1b7f176aaec61adcbce660136628\r\na=ice-ufrag:123f9481\r\na=mid:0\r\na=setup:active\r\na=sctp-port:5000\r\na=max-message-size:1073741823\r\n"}
2021/05/11 15:23:12 Received Answer.
2021/05/11 15:23:14 WebRTC: DataChannel.OnOpen
2021/05/11 15:23:14 ---- Handler: snowflake assigned ----
2021/05/11 15:23:15 Traffic Bytes (in|out): 0 | 2796 -- (0 OnMessages, 10 Sends)
May 11 17:23:17.000 [notice] Bootstrapped 14% (handshake): Handshaking with a relay
[OnionManager] progress=14
May 11 17:23:17.000 [notice] Learned fingerprint 2B280B23E1107BB62ABFC40DDCC8824814F80A72 for bridge 192.0.2.3:1 (with transport 'snowflake').
May 11 17:23:17.000 [notice] Bootstrapped 15% (handshake_done): Handshake with a relay done
May 11 17:23:17.000 [notice] Bootstrapped 20% (onehop_create): Establishing an encrypted directory connection
[OnionManager] progress=15
[OnionManager] progress=20
May 11 17:23:17.000 [notice] Bootstrapped 25% (requesting_status): Asking for networkstatus consensus
[OnionManager] progress=25
May 11 17:23:18.000 [notice] new bridge descriptor 'flakey' (fresh): $2B280B23E1107BB62ABFC40DDCC8824814F80A72~flakey [1zOHpg+FxqQfi/6jDLtCpHHqBTH8gjYmCKXkus1D5Ko] at 192.0.2.3
2021/05/11 15:23:20 Traffic Bytes (in|out): 15952 | 5878 -- (24 OnMessages, 18 Sends)
2021/05/11 15:23:20 WebRTC: Collecting a new Snowflake. Currently at [1/3]
2021/05/11 15:23:20 snowflake-d4f8fb7718eed98e connecting...
2021/05/11 15:23:20 WebRTC: DataChannel created.
2021/05/11 15:23:20 WebRTC: Created offer
2021/05/11 15:23:20 WebRTC: Set local description
2021/05/11 15:23:20 WebRTC: PeerConnection created.
2021/05/11 15:23:20 Negotiating via BrokerChannel...
Target URL: snowflake-broker.torproject.net.global.prod.fastly.net Front URL: cdn.sstatic.net
[OnionManager] Triggering Tor connection retry.
May 11 17:23:23.000 [notice] Closing no-longer-configured Socks listener on 127.0.0.1:39050
May 11 17:23:23.000 [notice] DisableNetwork is set. Tor will not make or accept non-control network connections. Shutting down all existing connections.
May 11 17:23:23.000 [notice] Opening Socks listener on 127.0.0.1:39050
May 11 17:23:23.000 [notice] Opened Socks listener connection (ready) on 127.0.0.1:39050
2021/05/11 15:23:23 copy loop ended
2021/05/11 15:23:23 ---- Handler: closed stream 3 ---
2021/05/11 15:23:25 Traffic Bytes (in|out): 25 | 33 -- (1 OnMessages, 1 Sends)
2021/05/11 15:23:30 Traffic Bytes (in|out): 33 | 25 -- (1 OnMessages, 1 Sends)
2021/05/11 15:23:30 BrokerChannel Response:
504 Gateway Timeout
2021/05/11 15:23:30 WebRTC: closing DataChannel
2021/05/11 15:23:30 WebRTC: closing PeerConnection
2021/05/11 15:23:30 WebRTC: Closing
2021/05/11 15:23:30 WebRTC: Unexpected error, no answer. Retrying...
2021/05/11 15:23:30 WebRTC: Snowflakes have melted Retrying...
2021/05/11 15:23:30 ConnectLoop: stopped.
2021/05/11 15:23:30 WebRTC: closing DataChannel
2021/05/11 15:23:30 WebRTC: closing PeerConnection
2021/05/11 15:23:30 WebRTC: DataChannel.OnClose
2021/05/11 15:23:30 WebRTC: Closing
2021/05/11 15:23:30 WebRTC: melted all 1 snowflakes.
2021/05/11 15:23:30 ---- Handler: end collecting snowflakes ---
2021/05/11 15:23:30 ---- Handler: discarding finished session ---
2021/05/11 15:23:30 Handler ended
2021/05/11 15:23:30 copying WebRTC to SOCKS resulted in error: io: read/write on closed pipe
2021/05/11 15:23:35 Traffic Bytes (in|out): 0 | 33 -- (0 OnMessages, 1 Sends)
```https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40044Hello, currently, in China, tor-browser-linux64-10.5a15 can not connect to To...2023-08-02T00:11:12Zamiableclarity2011Hello, currently, in China, tor-browser-linux64-10.5a15 can not connect to Tor network through Snowflake bridgeHello, currently, in China, tor-browser-linux64-10.5a15 can not connect to Tor network through Snowflake bridge.
Below are Tor log information.
```
5/3/21, 05:19:13.830 [NOTICE] DisableNetwork is set. Tor will not make or accept non-co...Hello, currently, in China, tor-browser-linux64-10.5a15 can not connect to Tor network through Snowflake bridge.
Below are Tor log information.
```
5/3/21, 05:19:13.830 [NOTICE] DisableNetwork is set. Tor will not make or accept non-control network connections. Shutting down all existing connections.
5/3/21, 05:19:13.830 [NOTICE] Switching to guard context "bridges" (was using "default")
5/3/21, 05:19:13.830 [NOTICE] DisableNetwork is set. Tor will not make or accept non-control network connections. Shutting down all existing connections.
5/3/21, 05:19:13.840 [NOTICE] DisableNetwork is set. Tor will not make or accept non-control network connections. Shutting down all existing connections.
5/3/21, 05:19:13.840 [NOTICE] Opening Socks listener on 127.0.0.1:9150
5/3/21, 05:19:13.840 [NOTICE] Opened Socks listener connection (ready) on 127.0.0.1:9150
5/3/21, 05:19:13.840 [NOTICE] Renaming old configuration file to "/home/scientist/tor-browser-linux64-10.5a15_en-US.tar 2021 5 3/tor-browser_en-US/Browser/TorBrowser/Data/Tor/torrc.orig.1"
5/3/21, 05:19:13.641 [NOTICE] Bootstrapped 1% (conn_pt): Connecting to pluggable transport
5/3/21, 05:19:13.643 [NOTICE] Bootstrapped 2% (conn_done_pt): Connected to pluggable transport
5/3/21, 05:19:13.652 [NOTICE] Bootstrapped 10% (conn_done): Connected to a relay
5/3/21, 05:23:36.771 [NOTICE] Closing no-longer-configured Socks listener on 127.0.0.1:9150
5/3/21, 05:23:36.771 [NOTICE] DisableNetwork is set. Tor will not make or accept non-control network connections. Shutting down all existing connections.
5/3/21, 05:23:36.771 [WARN] Problem bootstrapping. Stuck at 10% (conn_done): Connected to a relay. (DONE; DONE; count 1; recommendation warn; host 2B280B23E1107BB62ABFC40DDCC8824814F80A72 at 192.0.2.3:1)
5/3/21, 05:23:36.771 [WARN] 1 connections have failed:
5/3/21, 05:23:36.771 [WARN] 1 connections died in state handshaking (TLS) with SSL state SSLv3/TLS write client hello in HANDSHAKE
5/3/21, 05:23:36.777 [WARN] Pluggable Transport process terminated with status code 0
5/3/21, 05:23:36.782 [NOTICE] DisableNetwork is set. Tor will not make or accept non-control network connections. Shutting down all existing connections.
5/3/21, 05:24:12.785 [NOTICE] DisableNetwork is set. Tor will not make or accept non-control network connections. Shutting down all existing connections.
5/3/21, 05:24:16.580 [NOTICE] DisableNetwork is set. Tor will not make or accept non-control network connections. Shutting down all existing connections.
5/3/21, 05:24:16.581 [NOTICE] DisableNetwork is set. Tor will not make or accept non-control network connections. Shutting down all existing connections.
5/3/21, 05:24:16.581 [NOTICE] DisableNetwork is set. Tor will not make or accept non-control network connections. Shutting down all existing connections.
5/3/21, 05:24:16.581 [NOTICE] Opening Socks listener on 127.0.0.1:9150
5/3/21, 05:24:16.581 [NOTICE] Opened Socks listener connection (ready) on 127.0.0.1:9150
5/3/21, 05:24:16.720 [NOTICE] Bootstrapped 1% (conn_pt): Connecting to pluggable transport
5/3/21, 05:24:16.721 [NOTICE] Bootstrapped 2% (conn_done_pt): Connected to pluggable transport
5/3/21, 05:24:16.722 [NOTICE] Bootstrapped 10% (conn_done): Connected to a relay
5/3/21, 05:27:23.576 [NOTICE] Closing no-longer-configured Socks listener on 127.0.0.1:9150
5/3/21, 05:27:23.583 [NOTICE] DisableNetwork is set. Tor will not make or accept non-control network connections. Shutting down all existing connections.
5/3/21, 05:27:23.583 [WARN] Problem bootstrapping. Stuck at 10% (conn_done): Connected to a relay. (DONE; DONE; count 1; recommendation warn; host 2B280B23E1107BB62ABFC40DDCC8824814F80A72 at 192.0.2.3:1)
5/3/21, 05:27:23.583 [WARN] 1 connections have failed:
5/3/21, 05:27:23.583 [WARN] 1 connections died in state handshaking (TLS) with SSL state SSLv3/TLS write client hello in HANDSHAKE
5/3/21, 05:27:23.589 [WARN] Pluggable Transport process terminated with status code 0
5/3/21, 05:27:23.593 [NOTICE] DisableNetwork is set. Tor will not make or accept non-control network connections. Shutting down all existing connections.
```
I upload my state file.[geoip](/uploads/fb4732605b2878e53b7b41ab64b3e484/geoip)[geoip6](/uploads/35e15bb91214d440fd18861cfbd2a63d/geoip6)[lock](/uploads/c13495793ef9f5d1c55189d9ae9f757e/lock)[state](/uploads/ce9f5304184ce6ec3bd1bf355ec7526e/state)[state](/uploads/6342d4f91981f968e6339a964e5fc2af/state)[torrc](/uploads/db69817af226bf8545f22c5b21b1da86/torrc)[torrc.orig.1](/uploads/6cdf726348df456c444b965a3a24bc2d/torrc.orig.1)[torrc-defaults](/uploads/feca66dee013583ae799557f8a3c3e21/torrc-defaults)
Could you please solve this problem? Thank you very much for your help. I really appreciate it.