Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use ngrok rather than localtunnel when running browser tests #668

Merged
merged 1 commit into from
Aug 7, 2018

Conversation

phillipj
Copy link
Collaborator

@phillipj phillipj commented Aug 4, 2018

These changes makes zuul use ngrok for exposing itself to the outside world, rather than the default localtunnel implementation. That's because we've had quite a lot of issues with flakyness which seems to be related to localtunnel, e.g.:

- starting: <internet explorer 9 on Windows 2008>
events.js:160
      throw er; // Unhandled 'error' event
      ^
Error: connection refused: localtunnel.me:44896 (check your firewall settings)
    at Socket.<anonymous> (/home/travis/build/janl/mustache.js/node_modules/localtunnel/client.js:84:32)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:188:7)
    at emitErrorNT (net.js:1290:8)
    at _combinedTickCallback (internal/process/next_tick.js:80:11)
    at process._tickCallback (internal/process/next_tick.js:104:9)

I thought this was fixed by using Node.js 6 instead of Node.js 4, but sadly that was not the case as it re-appeared with Node.js 6 as well.

Had to use a custom version of zuul-ngrok which contains a newer version of ngrok. The dependency used by the upstream module threw an error when running on my computer, the updated version worked as a charm though. We should change to using the upstream module as soon as the PR with that ngrok version bump lands.

Set concurrency: 1 otherwise ngrok would fail and make IE11 tests stall forever because of too many connections being made within a short time period. I've notice it can take quite some time (20+ minutes) to get all the tests through as it seems ngrok still seems to throttle the connections somehow, but the important thing is getting these tests to work.

These changes makes zuul use ngrok for exposing itself to the outside
world, rather than the default localtunnel implementation. That's because
we've had quite a lot of issues with flakyness which seems to be related
to localtunnel, e.g.:

```
- starting: <internet explorer 9 on Windows 2008>
events.js:160
      throw er; // Unhandled 'error' event
      ^
Error: connection refused: localtunnel.me:44896 (check your firewall settings)
    at Socket.<anonymous> (/home/travis/build/janl/mustache.js/node_modules/localtunnel/client.js:84:32)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:188:7)
    at emitErrorNT (net.js:1290:8)
    at _combinedTickCallback (internal/process/next_tick.js:80:11)
    at process._tickCallback (internal/process/next_tick.js:104:9)
```

I thought this was fixed by using Node.js 6 instead of Node.js 4,
but sadly that was not the case as it re-appeared with Node.js 6 as well.

Had to use a custom version of zuul-ngrok which contains a newer version
of ngrok. The dependency used by the upstream module threw an error when
running on my computer, the updated version worked as a charm though.
We should change to using the upstream module as soon as the PR with that
ngrok version bump lands.

Set `concurrency: 1` otherwise ngrok would fail and make IE11 tests stall
forever because of too many connections being made within a short time
period. I've notice it can take quite some time to get all the tests
through as it seems ngrok still seems to throttle the connections somehow,
but the important thing is getting these tests to work.
@phillipj phillipj merged commit e443ada into master Aug 7, 2018
@phillipj phillipj deleted the improve-browser-test-stability branch August 7, 2018 12:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant