Hi Maxim,
On 2023-04-21 04:53, Maxim Cournoyer wrote:
I suspect this is because 'networking is disengaged before the NFS mount is unmounted.
Supposing that a NFS volume is mounted at /x/y/z (either manually or via a shepherd service),
probably what's happening is that the parent shepherd service of that path (be it /x/y, /x or /)
never unmounts due to the NFS child path.
It can't unmount the NFS path because:
a. manual NFS mount, 'networking has no knowledge of this and is already gone;
b. if provisioned through operating-system, since it doesn't support adding arbitrary shepherd dependencies
and it does not add 'networking to its 'requires' field, 'networking is already gone by the time it reaches here. [1]
If the NFS volume is manually unmounted (or there's some mechanism in place to unmount it before 'networking)
then no hang should occur.
[1]: Though it's tempting to simply add a 'networking dependency to any file-system-type = “nfs”, this
is not the best idea since:
a. not every service has a way to indicate that 'networking is ready (NFS mounts will fail to be automatically
mounted but in theory they should be able to unmount without interaction)
b. Interfaces that are configured outside of the 'networking service (be it manually, via custom shepherd service, etc.)
or that do not “depend” on the general idea of 'networking, such as NFS mounts using interface scoped Link-Local addresses.
Cheers,
Bruno