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