Opened 6 months ago

Closed 5 months ago

#30258 closed defect (duplicate)

Snowflake proxy stops working during browsing session

Reported by: cohosh Owned by: cohosh
Priority: Medium Milestone:
Component: Circumvention/Snowflake Version:
Severity: Normal Keywords: snowflake
Cc: dcf, arlolra, cohosh, phw Actual Points:
Parent ID: Points:
Reviewer: Sponsor: Sponsor19

Description

This was a comment on #25688:

I'm still not a 100% sure but each 7min or so it sure looks like the snowflake is deadlocking (or something else?) while I'm being connected and I get another one, this is very visible in my browsing experience. It would be great if you could investigate this.

Child Tickets

Change History (9)

comment:1 Changed 6 months ago by cohosh

I'm having trouble reproducing the every 7min behaviour, but I do see the usual timeouts after 30s of inactivity (#25429). It's possible this has a noticeable affect on the browsing experience if the user makes a new request right as the client is timing out.

In any case, this seems to be a client-side issue rather than with the proxies. There's two possible quick solutions:

  1. We could set the timeout to a much larger values as suggested in #25429
  2. We could set the snowflake client option -max 2 or some number higher than the default of 1. I'm not entirely sure whether this will help but the source code seems to suggest that we will then collect 2 snowflakes and can switch to the other one when one snowflake stops working (or times out).

comment:2 in reply to:  1 Changed 6 months ago by cypherpunks

Replying to cohosh:

I'm having trouble reproducing the every 7min behaviour,

I said on average, sometimes it can be 30min sometimes just 4min.

but I do see the usual timeouts after 30s of inactivity (#25429).

I can rule that out since I send a small request every 15s or so.

Maybe try to upload a very large file (5Go) and at some point I'm sure your connection to the snowflake will go down.

comment:3 Changed 6 months ago by cohosh

I'm now able to reliably reproduce this with a large (100MB) file download. The download stalls and the client reports no incoming bytes, closes the connection, and requests another snowflake.

2019/04/25 20:11:48 WebRTC: No messages received for 30 seconds -- closing stale connection.
2019/04/25 20:11:48 WebRTC: closing DataChannel
2019/04/25 20:11:48 WebRTC: DataChannel.OnClose [locally]
2019/04/25 20:11:48 WebRTC: closing PeerConnection
2019/04/25 20:11:48 WebRTC: Closing
2019/04/25 20:11:48 copy loop ended

comment:4 Changed 6 months ago by cohosh

Yup, this an issue with the proxy-go deadlocking patch. It's also already reported here #30206. Moving to that ticket.

comment:5 Changed 6 months ago by cohosh

Okay I've deployed the fix described in #30206, and it looks to be working on my end. Let me know if you still get hangs from the proxy.

comment:6 Changed 6 months ago by cohosh

Status: assignedneeds_review

(putting this in needs review to have someone else confirm that #30206 resolved the issue)

comment:7 Changed 5 months ago by dcf

cypherpunks, is it better for you now?

comment:8 in reply to:  7 Changed 5 months ago by cypherpunks

Replying to dcf:

cypherpunks, is it better for you now?

It's much better now, thanks cohosh and family, though you should probably consult with your logs on whether any proxy is deadlocking instead of my imprecise observations next time.

comment:9 Changed 5 months ago by cohosh

Resolution: duplicate
Status: needs_reviewclosed

Thanks cypherpunks! Marking as closed (duplicate) since #30206 seems to have resolved this issue.

Note: See TracTickets for help on using tickets.