defunctzombie / zuul

[UNMAINTAINED] multi-framework javascript browser testing
958 stars 87 forks source link

connect ECONNREFUSED #307

Closed darrachequesne closed 7 years ago

darrachequesne commented 8 years ago

Hi! At socket.io we have tests for browser support, and sometimes some of them (apparenly randomly) do fail. By enabling debug with DEBUG=zuul*, we got the following:

Example here: https://travis-ci.org/socketio/engine.io-parser/jobs/169995051

make[1]: Entering directory `/home/travis/build/socketio/engine.io-parser'
  zuul config: {"ui":"mocha-bdd","tunnel":{"type":"ngrok","authtoken":"6Aw8vTgcG5EvXdQywVvbh_3fMxvd4Q7dcL2caAHAFjV","proto":"tcp"},"browser_retries":20,"files":["test/index.js"],"prj_dir":"/home/travis/build/socketio/engine.io-parser","coverage":true,"browsers":[{"name":"android","version":"4.3"}],"name":"engine.io-parser","browser_output_timeout":-1,"browser_open_timeout":120000,"framework_dir":"/home/travis/build/socketio/engine.io-parser/node_modules/zuul/frameworks/mocha"} +0ms
- testing: android @ Linux: 4.3
  zuul:sauce:android:4.3 browser conf: {"name":"engine.io-parser","build":"190","browser":"android","version":"4.3","platform":"Linux"} +597ms
  zuul:browserify configuring browserify with provided options: undefined +192ms
  zuul:browserify adding to bundle: ["/home/travis/build/socketio/engine.io-parser/test/index.js"] +0ms
  zuul control server active on port 46451 +46ms
  zuul:sauce:android:4.3 running +1ms
  zuul:setup using zuul-ngrok to tunnel +203ms
  zuul:setup bouncer active on port 36976 +2ms
  zuul:sauce:android:4.3 quitting browser +295ms
  zuul:sauce:android:4.3 shutdown +167ms
  zuul browser error (android@4.3: undefined), restarting +0ms
- restarting: <android 4.3 on Linux>
  zuul:sauce:android:4.3 running +1ms
  zuul:setup using zuul-ngrok to tunnel +1ms
  zuul:setup bouncer active on port 49016 +1ms
  zuul:sauce:android:4.3 quitting browser +2ms
  zuul:sauce:android:4.3 shutdown +156ms
  zuul browser error (android@4.3: connect ECONNREFUSED), restarting +0ms

What's weird is that the first test returns undefined, and then the following tests all fail with ECONNREFUSED.

At first sight, it seems the tunnel is correctly re-initialized after each failure.. Maybe some rate-limitter from Saucelabs?

Setup:

vvo commented 8 years ago

Maybe some limitations around saucelabs OR ngrok actually. You should be able to maybe log a bit more info by digging into your node_modules, search for "browser error" and try to log more. Or see logs on saucelabs

darrachequesne commented 7 years ago

It seems ngrok only accepts two tunnels by default, hence the ECONNREFUSED. Thanks!