Hi Team
My newman postman collections tests are working fine when executing locally on my machine (mac OS). The collection tests with package.json were checked into git.
Jenkins job is pulling the tests and executing in our Jenkins box. No issues. This job is scheduled for every 30 mins.
Occasionally it fails only on Jenkins with the below exception.
Based on todayâs execution the scheduled job was executed 20 times. Out of 20, 14 times that the job was completed succesfully with no issues.
6 times it failed with the below error. It is happening every day. I have been investigating. No clues so far.
Jenkins box node/npm versions
npm :6.7.0,
node : 10.15.0
newman: 4.4.1
13:30:16 npm ERR! code ELIFECYCLE
13:30:16 npm ERR! errno 1
13:30:16 npm ERR! [email protected] xxxxx-tests-stage: newman run collections/zzzz.json -e collections/xxxenv.json -r htmlextra --reporter-htmlextra-export statusdashboard.html --reporter-htmlextra-template test.hbs
13:30:16 npm ERR! Exit status 1
13:30:16 npm ERR!
13:30:16 npm ERR! Failed at the [email protected] dependent-tests-stage script.
13:30:16 npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
13:30:16 Build step âExecute shellâ marked build as failure
13:30:16 Recording test results
@rjayaram I am not super familiar with this configuration but what comes to mind quickly for me, based on that error, is there a chance something else is running on the Jenkins box that may be using that same port?
Do you know if the previous instance of the node server shut down properly? Right off the top of my head I donât think it is a node config issue or even an issue with your tests but something in the run environment.
This is just an educated guess really. Maybe have it execute a command to list/search for the service before and after each run to help debug it.
ps aux | grep -i XXXXX
Let us know the results, would love to keep troubleshooting this.
Thanks for the quick reply @tmccann. I am trying to understand your suggestion. Are you saying to kill existing node processes ? if so, should I replace the XXXX with the node version running?
@rjayaram Right now I am suggesting that there could be an issue with a process still running when those failed runs kick off.
To start I would want it to print out if the process is running or not before and after.
Then just let it go about its normal runs and monitor the output, this is just to see if there is some weird process still hanging around thats causing those failed runs.
Sure @tmccann. I added the above ps command in Jenkins execute shell before executing the tests. Here is the result. When I executed the same command on Jenkins box, it is not displaying any node versions.
Let me know if I have to kill this process before executing the tests. if so, please share the command.
echo âRaje testing the processesâ
12:16:21 Raje testing the processes
12:16:21 + ps aux
12:16:21 + grep -i node
12:16:21 labuser 76143 0.0 0.0 4267932 668 ?? S 12:17PM 0:00.00 grep -i node
12:16:21 [raje_play_dep] $ /bin/sh -xe /var/folders/8q/kjd9x_ks7pb_cqc2m2sn3f2h0000gp/T/jenkins2080930658001882378.sh
Hi @tmccann
Sorry for the delay. The above one was not from a failed run. I am still getting the above " npm ERR! code ELIFECYCLE occasionally (This job is scheduled to execute every 30 mins, and getting this error at least twice in a day). I will update this thread with the value that I get for failed execution. Do I need to kill this process every time even if it is not failing. Here is what I have added in Jenkins:
ps aux | grep -i node
ps aux | grep -i npm
labuser 38226 0.0 0.0 4267972 712 ?? S 1:24PM 0:00.00 grep -i node
labuser 38221 0.0 0.0 4267972 712 ?? S 1:24PM 0:00.00 grep -i npm
I wouldnât think you need to kill the process if itâs not actually running.
However you can issue the command anyway because worst case, there is nothing to kill
This is all troubleshooting right now anyway to get a better idea of whats happening and to the root of why itâs failing for you.