holland-coredev team mailing list archive
-
holland-coredev team
-
Mailing list archive
-
Message #00273
[Bug 1170446] [NEW] holland can leave orphan grandchildren
Public bug reported:
When a holland plugin forks a command which in turn forks some subset of
commands, but that command is terminated or fails in some way that does
not kill its children, holland can sometimes leave children of its
children processes running for some time, even if the plugin otherwise
tracks the child exit status properly.
This is most common with xtrabackup, where the innobackupex perl script
fails to clean up after itself in a variety of circumstances. This can
leave the xtrabackup_* binary running in the background even after
holland has stopped.
I think we can largely resolve this by always sending a SIGTERM to the
holland process group to at least signal grandchild processes to exit
which will cover most of the common cases where this occurs - and
certainly fix a few nasty cases with innobackupex -> xtrabackup.
We can do something like:
# temporarily ignore the signal we will send our process group
with ignored_signals(SIGTERM):
os.killpg(os.getpid(), SIGTERM)
And then exit as normal as needed.
** Affects: holland-backup
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Holland
Build, which is subscribed to holland-backup.
https://bugs.launchpad.net/bugs/1170446
Title:
holland can leave orphan grandchildren
Status in Holland Backup Framework:
New
Bug description:
When a holland plugin forks a command which in turn forks some subset
of commands, but that command is terminated or fails in some way that
does not kill its children, holland can sometimes leave children of
its children processes running for some time, even if the plugin
otherwise tracks the child exit status properly.
This is most common with xtrabackup, where the innobackupex perl
script fails to clean up after itself in a variety of circumstances.
This can leave the xtrabackup_* binary running in the background even
after holland has stopped.
I think we can largely resolve this by always sending a SIGTERM to the
holland process group to at least signal grandchild processes to exit
which will cover most of the common cases where this occurs - and
certainly fix a few nasty cases with innobackupex -> xtrabackup.
We can do something like:
# temporarily ignore the signal we will send our process group
with ignored_signals(SIGTERM):
os.killpg(os.getpid(), SIGTERM)
And then exit as normal as needed.
To manage notifications about this bug go to:
https://bugs.launchpad.net/holland-backup/+bug/1170446/+subscriptions
Follow ups
References