Hi, managers.
I posted a complaint about defunct processes and filesystems earlier.
The idea was that a defunct process is able to somehow hold a
filesystem so that it could not be unmounted. Now I can provoke the
behavior in a controlled environment:
# mkfset var_domain my_fileset
# mkdir /my_mountpoint
# mount var_domain#my_fileset /my_mountpoint
# cp /bin/true /my_mountpoint
# cd /
# /my_mountpoint/true &
The commands above generate a defunct process which executable file
once it executed were located on my_fileset. Everything else,
libraries, open files and so on is elsewhere.
The filesystem cannot be unmounted when that defunct exists. Lsof
shows nothing as the defunct actually does not exist and therefore
cannot have anything open.
From another terminal, try
# unmount /my_mountpoint
/my_mountpoint: Device busy
#
From the first terminal, if you use ksh, just hit return:
#
[1] + Done /my_mountpoint/true &
#
Now it is easy to unmount the fileset from the second terminal
# unmount /my_mountpoint
#
The reason for all this is of course not just that there is a funny
curiosity on DU. But people who use cluster software (ASE) may have
experienced that services won't stop because filesystems cannot be
unmounted and that the reason cannot be found. The most irritating is
that lsof or fuser cannot see that the filesystem is in use. And even
if we could get the information that this PID holds the filesystem, we
cannot kill the PID as it is already dead, we will have to kill the
parent (which can be anything).
I have reported this to Digital as an error in the operating system
kernel. Seen on 3.2G and 4.0D
Yours, Lars Bro
Received on Thu Apr 23 1998 - 11:16:48 NZST