HomeClusterLabs Projects

Fix: libcrmservice: avoid async zombie children by resending ignored SIGCHLD

Description

Fix: libcrmservice: avoid async zombie children by resending ignored SIGCHLD

Previously when executing a synchronous action, if there were existing
asynchronous actions on-going, any SIGCHLD for those child processes
would be redirected and ignored, so the processes would become zombies.

This commit fixes it by resending any ignored SIGCHLD after the
synchronous action has completed and SIGCHLD has been restored to be
handled by the previous handler, so that the asynchronous children will
be handled.

Issue exposed in 2.1.5 by bc852fe36. It introduced the asynchronous way
of retrieving metadata in controller meanwhile retaining the synchronous
way.

See discussion at:
https://github.com/ClusterLabs/pacemaker/pull/2873#discussion_r1472734082

Details

Provenance
gao-yanAuthored on Feb 23 2024, 7:46 AM
Parents
rP8b8ac2108a24: Merge pull request #3372 from clumens/libpe-build
Branches
Unknown
Tags
Unknown