From owner-freebsd-hardware Mon Mar 25 11:14:19 1996 Return-Path: owner-hardware Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id LAA26332 for hardware-outgoing; Mon, 25 Mar 1996 11:14:19 -0800 (PST) Received: from sub.Sonic.NET (root@sub.sonic.net [199.4.118.8]) by freefall.freebsd.org (8.7.3/8.7.3) with ESMTP id LAA26319 for ; Mon, 25 Mar 1996 11:14:15 -0800 (PST) Received: from sonic.Sonic.NET (root@sonic.net [199.4.118.11]) by sub.Sonic.NET (8.7.4/8.7.3) with ESMTP id LAA04527 for ; Mon, 25 Mar 1996 11:18:22 -0800 Received: from sonic.net (root@sonic.net [199.4.118.11]) by sonic.Sonic.NET (8.7.4/8.6.10) with SMTP id LAA10439 for ; Mon, 25 Mar 1996 11:13:26 -0800 Received: from rose by sonic.net with uucp (Smail3.1.28.1 #100) id m0u1Hhl-000jTHC; Mon, 25 Mar 96 11:13 PST Received: by thirdeye.com (4.1/SMI-4.1) id AA07514; Mon, 25 Mar 96 10:51:27 PST Date: Mon, 25 Mar 96 10:51:27 PST From: peter@thirdeye.com (Peter Rowell) Message-Id: <9603251851.AA07514@thirdeye.com> To: freebsd-hardware@FreeBSD.ORG Subject: File corruption (Sun=>BSD w/3c590 + vx driver) Sender: owner-hardware@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk I come seeking wisdom. The problem descibed involves file corruption when copying from a Sun to a BSD machine using NFS, a 3com 3c590 and the if_vx driver code. Please excuse the longish message, but I wanted to give enough specifics that a light might go on in someone's head. Possible culprits (in order of decreasing probability): BSD vx driver for the 3c590 3com 3c590 board BSD nfs server code Sun nfs client code Sun cp command Bad Karma Extremely Selective Cosmic Rays In an exchange with Eric Varsanyi , he mentioned a FIFO overrun problem with certain 3c590 boards. However, his observed pattern of corruption (every other 16-bit word (including the IP headers) 0's) differs markedly from what I am seeing. Suggestions/insights/enlightening ridicule/lunch offers are solicited. TIA, Peter Rowell peter@thirdeye.com ---------------------------------------------------------------------------- The BSD system is fully described below. It is on a network with a Sparc II running SunOS 4.1.3 and a DEC ALPHA running OSF1 V3.2. When I got my new system, I eagerly cross-mounted a bunch of file systems and, from the Sun, did: cp -r /SUN/big/honking/directory/tree /BSD/usr/home/someplace to put a goof-around copy of our product on the BSD machine. Everything seemed to go fine. I rlogin'd to the BSD machine, ran our configure script, and started a make. It immediately started throwing compile errors left and right. I looked at the files involved and noticed that they were all corrupted in a most peculiar way. I did a "diff -r" bewteen the Sun and BSD copies and saw that there were about 200 lines (out of about 130,000 lines) that were corrupted. The corruption was *always* the deletion of 2 characters or the repetition of 2 characters. Sometimes both would happen in the same file. E.g.: In the first case, the ",l" is repeated. In the second case, the "al" is deleted. diff BSD/node.c SUN/node.c 108c108 < {tkCmp, "<=>", asmiNil,l, PvFRelopNode}, --- ^^ 2 repeated characters > {tkCmp, "<=>", asmiNil, PvFRelopNode}, 112c112 < {tkEqu, "==", asmiNil, PvFRelopNode}, --- ^ "al" is missing > {tkEqual, "==", asmiNil, PvFRelopNode}, I tried a number of things and found that this problem manifests consistently (but not with the same files/lines!) when "pushing" from the Sun to the BSD machine using "cp -r". (i.e. I was ON the Sun and was writing TO an NFS mounted filesystem on the BSD machine.) It does NOT happen (apparently) when using FTP. It happened once (I think, have not been able to repeat) when ON the BSD machine I was pulling FROM the Sun. I have not gotten it to happen at all bewteen the Alpha and the BSD machine. I will continue to try combinations to see if there is any other pattern to what is going on. tar-pipe ::= tar cf - /Sun/dir | (cd /nfs/BSD/test ; tar xBf -) Command From Command Host Status ---------------- ---- ------------------------------------- cp -r /SUN /BSD Sun multiple files corrupted cp -r /SUN /BSD BSD OK cp -r /DEC /BSD DEC OK tar-pipe Sun multiple files corrupted tar-pipe BSD multiple files corrupted cp dir.tar Sun Corrupted, no complaints from tar! cp dir.tar BSD OK cp dir.tar DEC OK cp dir.tar.gz Sun OK !?!?!?! cp dir.tar.gz BSD OK cp dir.tar.gz DEC OK ======================================================================== The BSD system is composed of: Motherboard ASUS P55TP4N 512KB pipeline burst cache Pentium-S 150 MHz Memory 32MB, 60ns, no parity video Number Nine 9FX771 w/ 2MB controller ASUS PCI-SC200 (NCR 53c810 chip) disk1 (sd0) Seagate ST32550N, 2.1 GB Barracuda disk2 (sd1) Seagate ST15230N, 4.1 GB Hawk cdrom Plextor PX43CE, 4plex Plus tape HP 1536A 4mm DAT NIC 3Com 3c590 Combo audio Sound Blaster AWE/32 OS FreeBsd 2.1 (Walnut Creek CD-ROM) Using Fred Gray's if_vx driver for the 3c590 board. (Thanks, Fred!) Note that this is the copy from Fred's home page (~ 2/1/96), not the modified one in 2.1-current.