On Sun, Jul 5, 2020 at 10:43 AM Larry McVoy <lm(a)mcvoy.com> wrote:
My guess is that other people didn't understand
the "rules" and did
things that created problems. Sun's clients did understand and did
not push NFS in ways that would break it.
I >>believe<< that a difference was file I/O was based on mmap on SunOS and
not on other systems (don't know about Solaris). The error was handled by
the OS memory system. You tell me about how SGI handled I/O. Tru64 used
mmap and I think macOS does also from the Mach heritage. RTU/Ultrix was
traditional BSD. Stellix was SRV3. Both had a file system cache with
write-behind.
I never knew for sure, but I always suspected that was crux of the
difference in how/where the write failure were handled. But as you pointed
out, many production NFS sites not running Suns had huge problems with
holes in files that were not discovered until it was too late to fix them.
SCCS/RCS repositories were particularly suspect and because people tried to
use them for shared development areas, it could be a big issue.