Bug 818381
| Summary: | re-add slaughtering of ExecStartPre leftover processes | ||
|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Michal Schmidt <mschmidt> |
| Component: | systemd | Assignee: | systemd-maint |
| Status: | CLOSED CURRENTRELEASE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
| Severity: | low | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 23 | CC: | colin, johannbg, jsynacek, lpoetter, metherid, mschmidt, plautrba, rvokal, systemd-maint |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | Bug Fix | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | 816842 | Environment: | |
| Last Closed: | 2015-10-21 07:14:13 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
| Bug Depends On: | 816842 | ||
| Bug Blocks: | |||
|
Description
Michal Schmidt
2012-05-02 22:20:49 UTC
Hmm, so, normally a subgroup being around should not be enough to consider a group none-empty. If we do, this would be a bug... (In reply to comment #1) > If we do, this would be a bug... Well, systemd doesn't, but the kernel does. Thus it will not run our release agent. It can be checked with: cd /sys/fs/cgroup mkdir test mount -t cgroup -o none,name=test none test cd test echo "/usr/bin/logger" > release_agent mkdir service mkdir service/control echo "1" > service/notify_on_release sleep 10 & echo $! > service/tasks # ... now wait 10 s. Check /var/log/messages. Nothing new there. rmdir service/control # Now check the logs again. Find this entry: # [...] logger: /service hmm, but we should have gotten the event for the subgroup and then have checked up the tree? I see you fixed this by "service: explicitly remove control/ subcgroup after each control command" (http://cgit.freedesktop.org/systemd/systemd/commit/?id=88f3e0c91f08c65a479e1aa09f171550b744d829) The fix works fine for my testcase, where the ExecStartPre is well-behaved and does not fork off leftover processes. The "control/" subcgroup is removed as expected. Stopping the service works. The fix is not sufficient for naughty services that start daemons from ExecStartPre. cg_kill_recursive() sends SIGKILL to the daemon and then it immediately tries to remove the subcgroup. There is no guarantee that the SIGKILL has already been delivered when rmdir() is called, so we may get EBUSY. When this happens, there's nothing else that would remove the subcgroup later. Guys let's move this to rawhide or close this if this is still the case. Thanks. This bug appears to have been reported against 'rawhide' during the Fedora 23 development cycle. Changing version to '23'. (As we did not run this process for some time, it could affect also pre-Fedora 23 development cycle bugs. We are very sorry. It will help us with cleanup during Fedora 23 End Of Life. Thank you.) More information and reason for this action is here: https://fedoraproject.org/wiki/BugZappers/HouseKeeping/Fedora23 @Michal: Is this still an issue or was this bugzilla forgotten? It was forgotten. I didn't check if the issue still exists. I can't reproduce this on F22, even with running a daemon (sshd) in the ExecStartPre. |