sparc64/164226: Data corruption on 9.0-RELEASE when reading
from CDROM
Marius Strobl
marius at alchemy.franken.de
Fri Jan 20 18:20:14 UTC 2012
The following reply was made to PR sparc64/164226; it has been noted by GNATS.
From: Marius Strobl <marius at alchemy.franken.de>
To: mav at freebsd.org
Cc: freebsd-gnats-submit at freebsd.org, "C. P. Ghost" <cpghost at cordula.ws>
Subject: Re: sparc64/164226: Data corruption on 9.0-RELEASE when reading from CDROM
Date: Fri, 20 Jan 2012 18:51:06 +0100
On Tue, Jan 17, 2012 at 12:31:43AM +0000, C. P. Ghost wrote:
>
> >Number: 164226
> >Category: sparc64
> >Synopsis: Data corruption on 9.0-RELEASE when reading from CDROM
> >Confidential: no
> >Severity: serious
> >Priority: medium
> >Responsible: freebsd-sparc64
> >State: open
> >Quarter:
> >Keywords:
> >Date-Required:
> >Class: sw-bug
> >Submitter-Id: current-users
> >Arrival-Date: Tue Jan 17 00:40:07 UTC 2012
> >Closed-Date:
> >Last-Modified:
> >Originator: C. P. Ghost
> >Release: FreeBSD 9.0-RELEASE/sparc64
> >Organization:
> Cordula's Web
> >Environment:
> FreeBSD tarazed.cordula.ws 9.0-RELEASE FreeBSD 9.0-RELEASE #0: Mon Jan 16 01:51:15 CET 2012 root at tarazed.cordula.ws:/usr/obj/usr/src/sys/GENERIC sparc64
> >Description:
> It's not possible to install FreeBSD 9.0-RELEASE from CDROM on
> a Blade 1500, because bsdinstall reports a corrupt base.txz.
>
> Investigating the issue further, revealed that the 9.0 kernel
> corrupts data read from a CDROM mounted via /dev/cd0, while
> the 8.2 kernel doesn't corrupt data when the CDROM is mounted
> via /dev/acd0.
>
> >How-To-Repeat:
> 8.2-RELEASE doesn't exhibit the bug:
>
> 1. Install 8.2-RELEASE on a sun4u system.
> 2. Mount the 9.0-RELEASE CDROM (using /dev/acd0)
> 3. cd /cdrom/usr/freebsd-dist; sha256 *.txz;
> 4. compare with MANIFEST -> same checksums.
>
> Upgrade to 9.0-RELEASE, e.g. from source:
>
> 4. mv /usr/src /usr/src.82
> 5. cd /; tar -xvpf /cdrom/usr/freebsd-dist/src.txz
> 6. source upgrade from 8.2 to 9.0
>
> 9.0-RELEASE exhibits the problem:
>
> 7. Reboot to 9.0-RELEASE
> 8. Mount the 9.0-RELEASE CDROM (using /dev/cd0)
> 9. cd /cdrom/usr/freebsd-dist; sha256 *.txz
> 10. compare checksums with MANIFEST -> different checksums!
>
> Reboot 9.0 userland to 8.2 (/boot/kernel.old/kernel)
> and repeat sha256 checksums -> no errors.
>
> Note, the sha256 program on 9.0 yields the same checksums
> on arbitrary files than on 8.2, as long as those files are
> not read from CDROM (e.g. fetched from the net). It is okay.
> >Fix:
> No fix known yet.
>
> Workaround: netboot 9.0, or source-upgrade from a previous
> release. Don't use CDROM (/dev/cd0) on 9.0 until this bug
> is fixed.
>
Alexander, could you please look into this?
Apparently, using cd(4) with ATA_CAM on sparc64 causes seemingly
random data corruption while using the same hardware with acd(4)
doesn't. Also cd(4) works just fine with SPI CD-ROMs. This affects
CD-ROMs connected to both AcerLabs M5229 and CMD 646.
Btw., apparently hw.ata.ata_dma and w.ata.atapi_dma no longer
work when using ATA_CAM as ata_getparam() isn't called in the
first place. On a quick glance hw.ata.ata_dma_check_80pin and
hw.ata.wc probably also are no longer available with ATA_CAM.
Is there an alternative to these tunables to achieve the same
when using ATA_CAM?
Marius
More information about the freebsd-sparc64
mailing list