Subject: bufcache cancer in -current?
To: None <current-users@netbsd.org>
From: Sean Doran <smd@ebone.net>
List: current-users
Date: 05/23/2000 00:34:37
I have NEVER seen this before today, despite many make builds.

I am seeing a problem where nm trips on truncated files
during heavy filesystem access during make build.

Kernel built with SOFTDEP and a big buffer cache from sources cvs updated 
a few hours ago, and "make build" with objects going to a softdep-enabled
partition.  Nothing very new, except previous full build was 14 May.

FWIW:

> using 4870 buffers containing 39240 KB of memory

...

cc -pipe -O3 -march=i686 -mfancy-math-387 -fsched-interblock -fsched-spec -fsched-spec-load -fbranch-count-reg -fno-expensive-optimizations -fforce-mem -fforce-addr -finline-functions -mwide-multiply -funroll-loops -DALL_STATE  -Wall -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wno-uninitialized -Werror   -D_LIBC -DNLS -DYP -DHESIOD -DLIBC_SCCS -DSYSLIBC_SCCS  -D_REENTRANT -I/usr/src/lib/libc/include -DINET6 -D__DBINTERFACE_PRIVATE -I/usr/src/lib/libc/../../libexec/ld.elf_so -I/usr/src/lib/libc/dlfcn -DRESOLVSORT -I. -DPOSIX_MISTAKE -DFLOATING_POINT -nostdinc -idirafter /usr/local/safeplace/usr/include -c -fPIC -DPIC /usr/src/lib/libc/yp/ypprot_err.c -o ypprot_err.so
building standard c library
/usr/bin/nm: __getlogin.o: File format not recognized
/usr/bin/nm: sendto.o: File truncated
/usr/bin/nm: setegid.o: File truncated
/usr/bin/nm: setpgid.o: File truncated
/usr/bin/nm: setpriority.o: File truncated
/usr/bin/nm: setregid.o: File truncated
/usr/bin/nm: setreuid.o: File truncated
/usr/bin/nm: __sigaction14.o: File format not recognized
/usr/bin/nm: __sigaltstack14.o: File truncated
/usr/bin/nm: setpgrp.o: File truncated
/usr/bin/nm: setrgid.o: File truncated
/usr/bin/nm: dirname.o: File format not recognized
/usr/bin/nm: isascii.o: File format not recognized
/usr/bin/nm: setdomainname.o: File truncated
/usr/bin/nm: setmode.o: File truncated
/usr/bin/nm: setproctitle.o: File truncated
/usr/bin/nm: stringlist.o: File truncated
/usr/bin/nm: verrx.o: File truncated
/usr/bin/nm: setbuf.o: File truncated
/usr/bin/nm: setbuffer.o: File truncated
/usr/bin/nm: tdelete.o: File truncated
/usr/bin/nm: strlcat.o: File truncated
/usr/bin/nm: strlcpy.o: File truncated
/usr/bin/nm: strmode.o: File truncated
/usr/bin/nm: strlen.o: File truncated
/usr/bin/nm: tcsendbreak.o: File truncated
/usr/bin/nm: tcsetattr.o: File truncated
/usr/bin/nm: tcsetpgrp.o: File truncated
/usr/bin/nm: strftime.o: File truncated
/usr/bin/nm: setlogin.o: File truncated
ar: libc.a: Malformed archive

This is repeatable, and in a make build for me happens at this
point all the time.   

Running sync(1) + sleep 3 in an endless loop while building
will allow the entire make build to complete, repeatably.

> sean# df /usr/obj.i386
> Filesystem  1K-blocks     Used    Avail Capacity  Mounted on
> /dev/sd1e      506684    22008   459340     4%    /usr/obj.i386

VM (mmap) vs. bufcache (write/read) desynchronization?

Something grosser?  

	Sean.