Kill signals being received when Circle runs rspec via a Github push but not via SSH

I’m running a set of RSpec tests on circle that are trigging the dreaded Received 'killed' signal error. The error occurs repeatedly and randomly throughout the tests when they are run on circle as normal.

However if I SSH into the Circle machine and then re-run the tests they run reliably and withgout any kill signal. I’ve done this now several times over in both scenarios.

Circle, please can you help out with some useful debugging suggestions. I’ve got a call with a sales rep tomorrow to see about using a bigger machine but I have a feeling that that’s not the problem.

Thank you,
Peter

Addendum
Dear Circle - this received 'killed' signal error is awful. It doesn’t provide any information, anywhere to go to look for logs or any clue as to what to do. Can you please look at providing more informative logs when this happens.

Dear Peter - that error is from the Linux kernel. Blame them :rofl:

This sounds very much like you are running out of memory. I would normally recommend using dmesg to see if you have any “sacrificed child” errors, but if it works flawlessly in SSH, that is going to be hard to do.

Hi @peternixey,

Here are two suggestions you could try for debugging:

  1. Set the shell in your job to be an interactive login shell for all commands, to simulate your SSH session (See: https://circleci.com/docs/2.0/configuration-reference/#job_name and https://circleci.com/docs/2.0/configuration-reference/#default-shell-options). The ~/.bash_profile, ~/.bash_login, and ~/.profile files are sourced in an interactive login shell.

  2. Add an additional run step configured with when: on_fail (Reference: https://circleci.com/docs/2.0/configuration-reference/#run) that reruns your tests. This is to check whether the tests will pass on a 2nd run, which simulates the situation when you SSH in.

2 Likes