Introducing Stability Improvements to Sauce Connect

Posted Jan 5th, 2016

Starting with Sauce Connect v4.3.13, new features have been added which aim to increase stability when testing websites behind the firewall.

1) Prevent Sauce Connect from shutting down when actively being used by job(s)

Argument:  --wait-tunnel-shutdown

Adding the above argument prevents users from shutting down their tunnels while jobs are still running.  Should the user attempt to close the tunnel, they will receive a warning as well as a count of tests currently using the tunnel (see example output below). Once the test(s) using the tunnel complete, the tunnel will close itself.

[code]05 Jan 09:08:20 - Sauce Connect is up, you may start your tests.

05 Jan 09:11:13 - Cleaning up. 05 Jan 09:11:13 - Removing tunnel 3a248df76eb14145ad0401c6c4aaf690.
05 Jan 09:11:13 - Waiting for any active job using this tunnel to finish.
05 Jan 09:11:13 - Press CTRL-C again to shut down immediately.
05 Jan 09:11:13 - Number of jobs using tunnel: 1.
05 Jan 09:11:19 - Number of jobs using tunnel: 1.
05 Jan 09:11:25 - Number of jobs using tunnel: 1.
05 Jan 09:11:33 - Number of jobs using tunnel: 1.
05 Jan 09:11:41 - All jobs using tunnel have finished.
05 Jan 09:11:41 - Waiting for the connection to terminate...
05 Jan 09:11:42 - Connection closed (8).
05 Jan 09:11:42 - Goodbye.[/code]

If the user wants to force shut the tunnel, they can do so by sending another close command (e.g. Ctrl + C)

2) Prevent Sauce Connect shut down due to colliding tunnels

Argument: --no-remove-colliding-tunnels

When this argument is added, any tunnel started with the same username and tunnel-identifier will be pooled together creating failover/load balancing for Sauce Connect. Once a pool of tunnels is established, newly started tests will be assigned to an active tunnel in the pool at random.  

Note: In order to join a pool, each tunnel must be started with this argument.

Simple Q&A

Q: What happens when one tunnel in the pool crashes?

A: It is removed from the pool.

Q: What happens if tunnels have differing values for arguments such as --pac?

A: The --no-remove0colliding-tunnel only enforces that the username and tunnel-identifier be the same, all other options can differ from one tunnel in the pool to the next.

Q: What happens when one or more (but not all) of the tunnels in the pool have the argument --shared?

A: If a sub-account goes to use a parent tunnel from the pool, it will be connected only to ones in the pool which have --shared enabled.

Written by

Yaroslav Borets


Dev toolsAutomated testing