[Pkg-sysvinit-devel] Bug#481252: [initscripts] umountfs: network fs should be unmounted before network-manager is shutdown

C Sights csights at fastmail.fm
Thu May 15 23:13:18 UTC 2008


Hi,

> thus if NetworkManager need to stop after umountfs, it should use the
> X-Stop-After header.

	You probably weren't trying to say that "X-Stop-After" is the only change 
needed to /etc/init.d/network-manager (I see your additional comments below).
	BUT, after adding "# X-Stop-After:          umountnfs" 
to /etc/init.d/network-manager, insserv says:

insserv: There is a loop between service dhcdbd and umountnfs
insserv:  loop involving service umountnfs at depth 5
insserv:  loop involving service NetworkManager at depth 4
insserv:  loop involving service avahi at depth 8
insserv: There is a loop between service umountnfs and NetworkManager
insserv:  loop involving service dhcdbd at depth 9
insserv: exiting without changing boot order!

	Probably you didn't expect this simple hack to work...

> I have not investigated this issue, but suspect a solution might
> involve looking at the omitpid feature in sendsigs, and changing the
> shutdown dependencies of NetworkManager.  $remote_fs during shutdown
> is the point where /usr/ is guaranteed to still be mounted, and just
> before it might be umounted all/most processes are killed by sendsigs.

	It appears "omitpid"  causes sendsigs to make exceptions when killing 
processes. (?)
	I think you are suggesting the following occur during shutdown:
1. sendsigs (but don't kill NetworkManager or any of its dependencies)
2. umountnfs
3. network-manager stop
4. shutdown NetworkManager runtime dependencies.

	This order would be a problem if the NetworkManager were on the network fs 
unmounted by umountnfs (e.g. networked /usr/).  What is needed, somehow, is 
to unmount network fs that are accessed through an interface managed by 
NetworkManager, then stop NetworkManager, then umount the rest of the network 
fs.

1. sendsigs (but don't kill NetworkManager or deps)
2. umount network fs accessed through NetworkManager
3. network-manager stop
4. shutdown NetworkManager runtime dependencies.
5. unmount the rest of the network fs (e.g. /usr)

	Perhaps more easy, there should be a special script to umount "/usr", whether 
it be network or not?

1. sendsigs (but don't kill NetworkManager or deps)
2. umount all network file systems except /usr
3. network-manager stop
4. shutdown NetworkManager runtime dependencies.
5. unmount /usr (network or not)
6. networking stop

	This last idea seems to be the best b/c the script for unmounting the network 
fs just needs to avoid unmounting /usr, rather than detecting which 
mountpoints are provided through an interface managed by NetworkManager.

Thanks for listening, :)
	C.





More information about the Pkg-sysvinit-devel mailing list