forked from OSchip/llvm-project
[clang-tidy] ensure run-clang-tidy reports children killed by signals
If a clang-tidy child process exits with a signal then run-clang-tidy will exit with an error but there is no hint why in the output, since the clang-tidy doesn't log anything and may not even have had the opportunity to do so depending on the signal used. `subprocess.CompletedProcess.returncode` is the negative signal number in this case. I hit this in a CI system where the parallelism used exceeded the RAM assigned to the container causing the OOM killer to SIGKILL clang-tidy processes. Reviewed By: sylvestre.ledru Differential Revision: https://reviews.llvm.org/D99081
This commit is contained in:
parent
f58a1f65e7
commit
f6ba03584b
|
@ -173,6 +173,9 @@ def run_tidy(args, tmpdir, build_path, queue, lock, failed_files):
|
|||
proc = subprocess.Popen(invocation, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||
output, err = proc.communicate()
|
||||
if proc.returncode != 0:
|
||||
if proc.returncode < 0:
|
||||
msg = "%s: terminated by signal %d\n" % (name, -proc.returncode)
|
||||
err += msg.encode('utf-8')
|
||||
failed_files.append(name)
|
||||
with lock:
|
||||
sys.stdout.write(' '.join(invocation) + '\n' + output.decode('utf-8'))
|
||||
|
|
Loading…
Reference in New Issue