Learn more about these different git repos.
Other Git URLs
Right now, we rely on each provider setting up a SIGCHLD handler whenever it spawns a child process (such as the krb5_child, ldap_child or proxy_child).
However, this can cause problems if two providers both need SIGCHLD handlers at the same time.
The proper way to handle this would be to create a common SIGCHLD handler as part of data_provider_be.c. Provider plugins would then be able to register a pid and a callback with the data_provider routine, which would then listen for all SIGCHLD events. When it receives one, it should loop through waitpid() (in case more than one completes at the same time). For each pid detected, it should create a tevent timed event to invoke the callback for that pid. This callback would then fire after re-entering the tevent mainloop (for memory protection guarantees).
A better long-term solution would be to add such a function into tevent itself, but for now we need to work around this ourselves.
Fields changed
milestone: NEEDS_TRIAGE => SSSD 1.7.0 owner: somebody => pzuna
Prepare as a patch for tevent.
owner: pzuna => sgallagh type: enhancement => task
patch: 0 => 1 status: new => assigned
Fixed by 6a9bdb6
blockedby: => blocking: => resolution: => fixed status: assigned => closed
rhbz: => 0
Metadata Update from @sgallagh: - Issue assigned to sgallagh - Issue set to the milestone: SSSD 1.7.0
SSSD is moving from Pagure to Github. This means that new issues and pull requests will be accepted only in SSSD's github repository.
This issue has been cloned to Github and is available here: - https://github.com/SSSD/sssd/issues/2046
If you want to receive further updates on the issue, please navigate to the github issue and click on subscribe button.
subscribe
Thank you for understanding. We apologize for all inconvenience.
Login to comment on this ticket.