I am using knfs-1.2.2 with kernel 2.2.9 in a RedHat 5.2 enviroment.
Recently I had a strange effect after changing a file on the nfs-server.
First a word about my setup
The server machine has big disks and lots of Ram and is exporting its
/usr-filesystem to a small old 8MB 16MHz 386 I found in the attic.
This has been running for quite a while (some weeks) perfectly well.
Then I installed a new sendmail binary on the server (in /usr/sbin).
After thatI found that I was loosing mails (the 386 is a mail-gateway and
of course runs sendmail from the shared /usr filesystem),
and on the server I found entrys like the following in the syslog
kernel: EXT2-fs warning (device ide0(3,7): ext2_free_blocks: bit already cleared for block 399089
kernel: EXT2-fs warning (device ide0(3,7)): ext2_free_blocks: bit already cleared for block 399089
last message repeated 41 times
The missing ) is no typo.
After killing the old and starting the new sendmail on the 386 all was
fine again.
My assumption is that 386 held only the current part of sendmail in memory
(due to its lack of ram) and wanted to swap in the part of sendmail that
handles incoming mail when it gets a new connection.
Unfortunately it couldn't get these blocks from the server as there now
was a different sendmail binary.
IMHO this is a bug in either the nfs client or the server, as this can
lead to serious crashes. If it hadn't been an nfs-filesystem. there would
have a 'text file busy' error preventing my from overwriting a running
file. Deleting removes the inode, but keeps the old text file as long as
the program is running. Is it possible to implement this in nfs, or is
there a contradiction to the stateless nature of nfs?
Thanks for reading this far,
J.Dorchain
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/