Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • S Snowflake
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 90
    • Issues 90
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 6
    • Merge requests 6
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • The Tor Project
  • Anti-censorship
  • Pluggable Transports
  • Snowflake
  • Issues
  • #25599
Closed
Open
Issue created Mar 22, 2018 by Arlo Breault@arloDeveloper

SOCKS4 failure message

Sometimes, Tor emits this:

[warn] The connection to the SOCKS4 proxy server at 127.0.0.1:$someport just failed. Make sure that the proxy >> server is up and running.

At which point no more handlers fire. Looking at the Tor source, this happens when SOCKS is "marked for close". This is inconvenient because then the client must be restarted for connectivity to work again.

\

Are you still experiencing this? Is it reproducible?

\

I experienced this sporadically while working on multiplexing. Right now it seems fine though.

It seems to be 100% reproducible if I explicitly readPipe.Close() on the webrtc peer. My guess is that when the copyLoop sends an error or EOF at SOCKS, Tor interprets that as an unexpected situation, "marks for close / deletion" and so the SOCKS4 server disappears.

Maybe there's a way to account for this in main() to also be able to recover the initial SOCKS listening? (this is not in the goptlib example, which we were originally based on) When the SOCKS connection is closed normally in handler, there's doesn't seem to be an issue.

But, should test more possibilities / longer times.

\ Migrated from https://github.com/keroserene/snowflake/issues/32

Assignee
Assign to
Time tracking