Fix signal forwarding from borgmatic to Borg resulting in recursion traceback (#368).
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2020-11-18 10:29:03 -08:00
parent 7b1fb68c18
commit 1c9ae81987
2 changed files with 7 additions and 1 deletions

View File

@@ -4,8 +4,13 @@ import signal
def _handle_signal(signal_number, frame): # pragma: no cover
'''
Send the signal to all processes in borgmatic's process group, which includes child process.
Send the signal to all processes in borgmatic's process group, which includes child processes.
'''
# Prevent infinite signal handler recursion. If the parent frame is this very same handler
# function, we know we're recursing.
if frame.f_back.f_code.co_name == _handle_signal.__name__:
return
os.killpg(os.getpgrp(), signal_number)