Tunnel termination hanging when using Jenkins with ECS slaves
justinbarry opened this issue · 2 comments
See process output below:
[root@d72757b430d8 src]# ps -aux
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 1.5 1.0 12961964 331964 ? Ssl 09:38 0:36 java -Duser.home=/home/jenkins -cp /usr/share/jenkins/slave.jar hudson.remoting.jnlp.Main -headless -url http://10.4.1.5 f34bb1a77887fbb790ee7baff1abb643f9344c84d0e16fa0ae48dd67ea11ecfd jenkins-44700c09073e
root 426 0.0 0.0 12892 2768 ? S 09:42 0:00 sh -c echo $$ > '/home/jenkins/workspace/d-outcomes_HO-test-ie-in-cd-6GICDBXOWCXKWVWSICMEHJLKF4MHPTPJDJGILMJQHGBPNGY3VGQQ/jsclient@tmp/durable-f84387dd/pid'; jsc=durable-59651029b78f11e9a37f7b961cbdfc1d; JE
root 428 0.0 0.0 12892 2784 ? S 09:42 0:00 /bin/sh -xe /home/jenkins/workspace/d-outcomes_HO-test-ie-in-cd-6GICDBXOWCXKWVWSICMEHJLKF4MHPTPJDJGILMJQHGBPNGY3VGQQ/jsclient@tmp/durable-f84387dd/script.sh
root 429 0.0 0.1 1063648 49904 ? Sl 09:42 0:00 npm
root 439 0.0 0.0 12896 2800 ? S 09:42 0:00 sh -c set -e && node scripts/local.runner.js -c conf/parallel_local.conf.js -e chrome
root 440 0.0 0.1 1204000 42656 ? Sl 09:42 0:01 node scripts/local.runner.js -c conf/parallel_local.conf.js -e chrome
root 465 0.0 0.0 0 0 ? Zs 09:42 0:00 [BrowserStackLoc] <defunct>
root 487 0.0 0.1 938152 44372 ? Sl 09:43 0:00 /root/.browserstack/BrowserStackLocal --daemon stop --log-file /home/jenkins/workspace/d-outcomes_HO-test-ie-in-cd-6GICDBXOWCXKWVWSICMEHJLKF4MHPTPJDJGILMJQHGBPNGY3VGQQ/jsclient/local.log --key xoWQ57MU6qEkK
root 496 0.0 0.1 906392 42508 ? Sl 09:43 0:02 /root/.browserstack/BrowserStackLocal --daemon stop --log-file /home/jenkins/workspace/d-outcomes_HO-test-ie-in-cd-6GICDBXOWCXKWVWSICMEHJLKF4MHPTPJDJGILMJQHGBPNGY3VGQQ/jsclient/local.log --key xoWQ57MU6qEkK
root 519 0.4 0.0 13028 3076 ? Ss 10:17 0:00 /bin/bash
root 533 0.0 0.0 14904 2268 ? R+ 10:17 0:00 ps -aux
[root@d72757b430d8 src]#
Elastic Container Service](https://aws.amazon.com/ecs/) runs Docker containers leading me to think could be related to #25.
By default Jenkins uses set -xe
per the docs . Is this enough to satisfy the intent of the workaround in #25?
Please let me know what further info I can provide to assist in debugging.
Also experiencing this. We run jenkins in a container with two slave containers. We recently built a local jenkins running on an osx machine with one slave container from the same dockerfile to try and reproduce the problem. We can't and we cannot see what is different. Manually killing the process works and the builds complete.
We are having same issue.
More details:
here my config file:
[sfursov@qaauto01 webdriverio-browserstack2]$ cat conf/local.conf.js
var browserstack = require('browserstack-local');
exports.config = {
user: process.env.BROWSERSTACK_USERNAME || 'slavikfursov1',
key: process.env.BROWSERSTACK_ACCESS_KEY || '??????',
updateJob: true,
specs: [
'./tests/specs/local_test.js'
],
exclude: [],
capabilities: [{
browser: 'chrome',
name: 'local_test',
build: 'webdriver-browserstack',
'browserstack.local': true,
'browserstack.debug': true
}],
logLevel: 'debug',
coloredLogs: true,
screenshotPath: './errorShots/',
baseUrl: '',
waitforTimeout: 10000,
connectionRetryTimeout: 90000,
connectionRetryCount: 3,
host: 'hub.browserstack.com',
before: function () {
var chai = require('chai');
global.expect = chai.expect;
chai.Should();
},
framework: 'mocha',
mochaOpts: {
ui: 'bdd',
timeout: 60000
},
// Code to start browserstack local before start of test
onPrepare: function (config, capabilities) {
console.log("Connecting local");
return new Promise(function (resolve, reject) {
exports.bs_local = new browserstack.Local();
exports.bs_local.start({ 'key': exports.config.key, 'force-proxy':'', 'local-proxy-host':'****', 'local-proxy-port':'8080' }, function (error) {
if (error) return reject(error);
console.log('Connected. Now testing...');
resolve();
});
});
},
// Code to stop browserstack local after end of test
onComplete: function (exitCode, config, capabilities, results) {
exports.bs_local.stop();
},
}
Tests runs fine 1st time,
But on 2nd run, I'm getting:
/home/sfursov/webdriverio-browserstack2/node_modules/@wdio/cli/build/run.js:94
throw e;
^
LocalError: Either another browserstack local client is running on your machine or some server is listening on port 45691
at /home/sfursov/webdriverio-browserstack2/node_modules/browserstack-local/lib/Local.js:58:20
at ChildProcess.exithandler (child_process.js:285:7)
at ChildProcess.emit (events.js:189:13)
at ChildProcess.EventEmitter.emit (domain.js:441:20)
at maybeClose (internal/child_process.js:970:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5)
I found it caused by hanging processes:
[sfursov@qaauto01 webdriverio-browserstack2]$ sudo ps aux | grep rowser
sfursov 26407 3.3 0.2 1215364 57372 ? Ssl 16:56 0:00 /home/sfursov/.browserstack/BrowserStackLocal --daemon start --log-file /home/sfursov/webdriverio-browserstack2/local.log --key **** --force-proxy --local-proxy-host **** --local-proxy-port 8080 -daemonInstance
sfursov 26428 3.5 0.2 1214620 57160 ? Sl 16:56 0:00 /home/sfursov/.browserstack/BrowserStackLocal --log-file /home/sfursov/webdriverio-browserstack2/local.log --key **** --force-proxy --local-proxy-host **** --local-proxy-port 8080 -daemonInstance --local-identifier browserstack-fork-0
sfursov 26433 4.9 0.2 1214724 57924 ? Sl 16:56 0:00 /home/sfursov/.browserstack/BrowserStackLocal --log-file /home/sfursov/webdriverio-browserstack2/local.log --key **** --force-proxy --local-proxy-host **** --local-proxy-port 8080 -daemonInstance --local-identifier browserstack-fork-1
sfursov 26438 4.7 0.1 1214616 55256 ? Sl 16:56 0:00 /home/sfursov/.browserstack/BrowserStackLocal --log-file /home/sfursov/webdriverio-browserstack2/local.log --key **** --force-proxy --local-proxy-host **** --local-proxy-port 8080 -daemonInstance --local-identifier browserstack-fork-2
sfursov 26444 3.8 0.1 1214488 55392 ? Sl 16:56 0:00 /home/sfursov/.browserstack/BrowserStackLocal --log-file /home/sfursov/webdriverio-browserstack2/local.log --key **** --force-proxy --local-proxy-host **** --local-proxy-port 8080 -daemonInstance --local-identifier browserstack-fork-3
sfursov 26449 3.5 0.1 1214624 55628 ? Sl 16:56 0:00 /home/sfursov/.browserstack/BrowserStackLocal --log-file /home/sfursov/webdriverio-browserstack2/local.log --key **** --force-proxy --local-proxy-host **** --local-proxy-port 8080 -daemonInstance --local-identifier browserstack-fork-4
If I kill them - tests will run again