Hi,
I've received 13 responses so far to the following question:
> I have two machines S and C both running SunOS-5.5.1. S serves a
> directory via NFS to C. C was mounting the directory for three or
> four days and yesterday we brought S to its knees, changed its IP
> address and rebooted it. Now, C can't lookup the directory and I'm
> unable to umount it.
>
> This situation has arisen some times before and I always solved it by
> rebooting the client machine. I have the feeling that there's no
> other way but this time I decided to call your wittiness just in case
> someone knows of a way to solve the problem without rebooting.
> Thanks to everyone. I'll summarize.
Unfortunately, I wasn't able to solve the problem. The suggestions I
received were the following:
- Mark Hargrave <hargrme@wisdom.maf.nasa.gov>, told me to:
# /etc/rc2.d/S74autofs stop
# /etc/rc2.d/S74autofs start
This doesn't help. When the automounter is stopping it `tries' to
umount every mount it has already performed but it doesn't force
it. In particular, busy mountpoints aren't umounted just like the
`stale' mountpoint I got.
- Mark Hokkanen <mhokkane@securecomputing.com>, told me to pay
check if S can resolve the IP address of C. It can, but that's not
the problem. I changed the IP address of S while C was mounting one
of S's directories. Now I can ping each one from the other but I
can't umount the directory.
- Colin_Melville@mastercard.com told me to kill rpc.statd and lockd,
then to `rm -r /etc/sm /etc/sm.bak', and then to restart both
daemons. These directories don't exist on either S or C. I
stopped/restarted the daemons doing
# sh /etc/init.d/nfs.client stop
# sh /etc/init.d/nfs.client start
but it didn't work.
- Rodney C. Marable <marable@xcom.net> told me essentially the same
thing.
- Robert T. Clift <rclift@nswc.navy.mil> told me to try to mount the
directory again under a different mountpoint. I did and it worked.
I just can't reuse the original mountpoint.
- Glenn W. Cantello <glenn.w.cantello@hydro.on.ca> told me to try the
umountall command with the flags -F, -k and -r. After reading the
manpage to understand what I would do, I did
# umountall -k -h S
but it hanged. I trussed the process and it was sleeping like this:
stat("/home/micro", 0xDFFFFBA8) (sleeping...)
/home/micro is the mountpoint in C that was mounting the remote
directory S:/l/home0/micro.
- Jim Harmon <jharmon@telecnnct.com> misunderstood my problem which is
my fault for not having been clear enough. After rebooting S and
changing its IP address C still thinks it's mounting a directory
from S. The problem is that I can't umount it.
- Jason Axley <jason.axley@attws.com> told me to
# sh /etc/init.d/nscd stop
# sh /etc/init.d/nscd start
to restart the name service cache daemon of C because it could have
cached the old IP of S. I did it but I knew this wasn't the problem
because I could ping S from C already.
- Mark Belanger <mark_belanger@ltx.com> told me to check if no process
was using the mountpoint by using the standard fuser(1) and the
freeware lsof. I have lsof installed (it's really useful) and have
already check this. In fact, the first time I checked, the was a
csh process using /home/micro. I tried to kill it with SIGTERM and
SIGKILL. At first it didn't died what wasn't exactly a surprise.
What surprised me was that a few minutes later the csh gone away and
I don't understand why. Anyway, I still can't umount the
directory. Look what I get
# umount /home/micro
nfs umount: /home/micro: is busy
Mark also told me to try to remount the directory over its old
mountpoint by passing the -O switch to mount. I tried but mount
hangs trying to stat("/home/micro").
- Shawn Kondel <shawnk@sunfs.math.usu.edu> told me essentially the
same thing.
- Ade E Oyeyemi <oyeyemi_ade@jpmorgan.com> told me that
``Stale NFS mount points are always a big problem , the only way
to get rid of them without rebooting the client is to re-
create the Stale mount point , umount the File system on the
client and then make the changes on the server.''
I tried this a some times and it always worked. However, this often
means that we must redo lots of things that aren't always easy.
(Imagine if the server machine was moved to a different building
with no near access to its old network.)
- Chris Marble <cmarble@orion.ac.hmc.edu> told me essentially the same
thing.
- Amjad Zamil <amjadz@sts.com.jo> told me to `nfs.client stop', then
to edit /etc/mnttab and remove from it the line associated with the
mounted FS and to `nfs.client start'. Well, I've never thought of
this. I tried (I'm going to reboot C in a few minutes anyway :-)
and look what happened afterwards:
# umount /home/micro
umount: warning: /home/micro not in mnttab
umount: /home/micro busy
It seems that the kernel maintains the mounting state in memory
structures, not only in the /etc/mnttab file.
Well, thank very much to all of you. We can't win every time. Now
excuse me, cause I have to reboot a machine. :-)
Gustavo.
This archive was generated by hypermail 2.1.2 : Fri Sep 28 2001 - 23:12:40 CDT