Date: Wed, 10 Sep 1997 20:23:59 +0200 (MET DST) From: Christoph Weber-Fahr <wefa@unicom.talkline.de> To: FreeBSD-gnats-submit@FreeBSD.ORG Subject: kern/4508: nfs3 data integrity problems Message-ID: <199709101823.UAA04192@helena.unicom.de> Resent-Message-ID: <199709101830.LAA18239@hub.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 4508 >Category: kern >Synopsis: nfs3 data integrity problems >Confidential: no >Severity: serious >Priority: low >Responsible: freebsd-bugs >State: open >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Wed Sep 10 11:30:01 PDT 1997 >Last-Modified: >Originator: Christoph Weber-Fahr >Organization: O.tel.o Communications >Release: FreeBSD 2.2.2-RELEASE i386 >Environment: two FreeBSD 2.2.2-RELEASE machines. - P90/32MB/3C590/AHA2940 - 486DX2-66i/16MB/NE2000 Clone/AHA1542B >Description: Machine 2 acts as "code server", i.e. it has the complete source tree and nfs-exports it to various other machines, among them #1. Machine 1 tries to compile a kernel for a third machine. in 90% of the attempts compilation falls over various errors in vnode_if.c . vnode_if.c is generated by a shell script in the make depend step. When examining vnode_if.c one notices a large block of zero bytes (0x00) within the file. Every Test involved at least a complete "make clean;make depend;make" cycle. The problem goes away, when - one removes vnode_if.c and restarts make (it is newly generated by the make process) - one compiles the kernel locally on machine 2 (doing the make depend step there is sufficient) - one forces nfs2 mount between the machines. The abovementioned problem is the most often boserved one. I also got sucessful compiles and unexplainable link fails and similar effects. My suspicion is that in certain stress situations nfs writes are not correctly transmitted. The problem occurs with both TCP and UDP mounts so I tend not to blame underlying protocols. >How-To-Repeat: use the abovementioned (or similar) system combo. mount /usr/src from system 2 on /usr/src on system 1 Generate a kernel according to the appended kernel file on system 1 in the nfs-mounted kernel compile directory. # # REM: minimal kernel for a small simple 386sx machine with 5 Megs # machine "i386" cpu "I386_CPU" ident REM maxusers 5 options GPL_MATH_EMULATE options INET options FFS options PROCFS options "COMPAT_43" options FAILSAFE config kernel root on wd0 controller isa0 controller wdc0 at isa? port "IO_WD1" bio irq 14 vector wdintr disk wd0 at wdc0 drive 0 device sc0 at isa? port "IO_KBD" tty irq 1 vector scintr device npx0 at isa? port "IO_NPX" flags 0x1 irq 13 vector npxintr device sio0 at isa? port "IO_COM1" tty irq 4 vector siointr device sio1 at isa? port "IO_COM2" tty irq 3 vector siointr device lpt0 at isa? port? tty irq 7 vector lptintr device ep0 at isa? port 0x300 net irq 10 vector epintr pseudo-device loop pseudo-device ether pseudo-device log pseudo-device tun 1 pseudo-device pty 8 >Fix: none. Workaround: use nfs2 >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199709101823.UAA04192>