Summary: | sys-apps/openrc: killprocs should not use killall5 | ||
---|---|---|---|
Product: | Gentoo Hosted Projects | Reporter: | William Hubbs <williamh> |
Component: | OpenRC | Assignee: | OpenRC Team <openrc> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | zmedico |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: | fix-killprocs.patch |
Description
William Hubbs
2011-07-29 17:44:22 UTC
Another concern to add to the llist is that it uses killall5, which is part of sysvinit, so technically openrc requires sysvinit to be present to work correctly. i dont think removing this is an option for exactly the reasons mentioned. this is also how sysvinit has acted since the beginning. so if we have just one bug for the decade+ of using this logic (while addressing many more), i'd say that's a pretty good track record. (In reply to comment #2) > i dont think removing this is an option for exactly the reasons mentioned. Please elaborate. How do the reasons that I think removing it might be something we should do back your position for keeping it? It causes bugs with file systems like ntfs3g because it force kills the ntfs3g process before the file system can be unmounted. The bsds do not need it, so why does linux? > this is also how sysvinit has acted since the beginning. I do not understand your statement here. sysvinit and openrc are two separate things. If we do decide to keep killprocs, it should be rewritten so it doesn't use killall5. > so if we have just one bug for the decade+ of using this logic (while > addressing many more), i'd say that's a pretty good track record. Maybe, but also remember that bl1 was o/s specific and openrc is not. So the things that have been done for a decade or more might need to be re-evaluated given openrc's new design. you already mentioned them. we cant have lazy processes hanging around keeping handles open to mount points (net/local/etc...). my sysvinit commit had nothing to do with killall5. our boot process has always killed things ... iirc, sysvinit itself took care of sending signals, but now openrc does it. i dont know how bsd works. you'd have to find someone on bsd. i dont think "the new design" is relevant to the issue that this is solving. fuse is simply an odd edge case as we never had "filesystems in userspace" to worry about before. Looking at the man page for shutdown, sysvinit still sends the signals, so I'm wondering why openrc sends them again with the killprocs script in the first place? Since the signals are still sent by shutdown, wouldn't that be another reason to get rid of killprocs? track back the history in git. it would suggest that no, we should not get rid of this. see bug 168977 and bug 177689 which specifically are fixed by it. Created attachment 284057 [details]
fix-killprocs.patch
In that case, I would like to propose this patch for killprocs.
If sysvinit is not installed on the system, killall5 will not be
present. This patch makes sure that killprocs returns a successful exit
code in that case.
we shouldnt be hardcoding paths. and if we're going to require killall5 here, then why not simply force people to remove it from their init.d runlevel ? Honestly I would prefer to not use killall5 at all, but I'm not sure how to rewrite killprocs to not use it. This has been fixed since 0.27.0, with the following commit: https://github.com/openrc/openrc/commit/44bac3c3798f7eb9186c3ea8774552aa191bfae7 |