Reproducable file corruption on 6-STABLE

Paul Schenkeveld fb-stable at
Fri May 12 17:21:10 PDT 2006


When I try to copy a large (7GB+) file from one filesystem to another the
copy is not equal to te source file.  This behaviour can be reproduced


  - FreeBSD 6-STABLE, cvsupped yesterday
  - Intel L440GX+ main board, dual 700 MHz Pentium 3, 1 GB RAM
  - 2x Promise TX3 IDE controllers
  - 4x Hitachi HDS725050KLAT80 harddisks (500GB each)
    These disks are mirrored using gvinum as two 500GB volumes:

      drive disk0 device /dev/ad4s1e
      drive disk1 device /dev/ad6s1e
      drive disk2 device /dev/ad8s1e
      drive disk3 device /dev/ad10s1e
      volume vol0
       plex org concat
	sd length 0 drive disk0
       plex org concat
	sd length 0 drive disk2
      volume vol1
       plex org concat
	sd length 0 drive disk1
       plex org concat
	sd length 0 drive disk3

    Other filesystems are on SCSI disks.

  # sum /data/vol1/some_7GB_file
  19249 6990148 /data/vol1/some_7GB_file

  # cp -p /data/vol1/some_7GB_file /data/vol0/tmp.1
  # sum /data/vol0/tmp.1
  54291 6990148 /data/vol0/tmp.1

  # cp -p /data/vol1/some_7GB_file /data/vol0/tmp.2
  # sum /data/vol0/tmp.2
  46435 6990148 /data/vol0/tmp.2

  # cp -p /data/vol1/some_7GB_file /data/vol0/tmp.3
  # sum /data/vol0/tmp.3
  53090 6990148 /data/vol0/tmp.3

  # cp -p /data/vol1/some_7GB_file /data/vol0/tmp.4
  # sum /data/vol0/tmp.4
  63059 6990148 /data/vol0/tmp.4

  # cp -p /data/vol1/some_7GB_file /data/vol2/tmp.5
  # sum /data/vol2/tmp.5
  44188 6990148 /data/vol2/tmp.5

No errors in dmesg.

Checksums are the same when repeating the sum command later so the
problem occurs during copy, not during read-back.

When I first copy the file from /data/vol1 to a filesystem on a pair of
SCSI disks and then to /data/vol2 from the SCSI disks I get a correct

Relevant dmesg output:

  pcib1: <PCI-PCI bridge> at device 1.0 on pci0
  pci1: <PCI bus> on pcib1
  pcib2: <PCI-PCI bridge> at device 15.0 on pci1
  pci2: <PCI bus> on pcib2
  atapci0: <Promise PDC20269 UDMA133 controller> port 0x3030-0x3037,0x3024-0x3027,0x3028-0x302f,0x3020-0x3023,0x3000-0x300f mem 0xf4200000-0xf4203fff irq 20 at device 4.0 on pci2
  ata2: <ATA channel 0> on atapci0
  ata3: <ATA channel 1> on atapci0
  atapci1: <Promise PDC20269 UDMA133 controller> port 0x3048-0x304f,0x303c-0x303f,0x3040-0x3047,0x3038-0x303b,0x3010-0x301f mem 0xf4204000-0xf4207fff irq 23 at device 7.0 on pci2
  ata4: <ATA channel 0> on atapci1
  ata5: <ATA channel 1> on atapci1
  ad4: 476940MB <HDS725050KLAT80 K2AOA10C> at ata2-master UDMA133
  ad6: 476940MB <HDS725050KLAT80 K2AOA10C> at ata3-master UDMA133
  ad8: 476940MB <HDS725050KLAT80 K2AOA10C> at ata4-master UDMA133
  ad10: 476940MB <HDS725050KLAT80 K2AOA10C> at ata5-master UDMA133

Hope someone can shed a light on this.


Paul Schenkeveld

More information about the freebsd-stable mailing list