Browse Source

Fix signal forwarding from borgmatic to Borg resulting in recursion traceback (#368).

tags/1.5.11
Dan Helfman 1 week ago
parent
commit
1c9ae81987
2 changed files with 7 additions and 1 deletions
  1. +1
    -0
      NEWS
  2. +6
    -1
      borgmatic/signals.py

+ 1
- 0
NEWS View File

@@ -4,6 +4,7 @@
* #355: Fix traceback when a database hook value is null in a configuration file.
* #361: Merge override values when specifying the "--override" flag multiple times. The previous
behavior was to take the value of the last "--override" flag only.
* #368: Fix signal forwarding from borgmatic to Borg resulting in recursion traceback.

1.5.10
* #347: Add hooks that run for the "extract" action: "before_extract" and "after_extract".


+ 6
- 1
borgmatic/signals.py 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)




Loading…
Cancel
Save