From owner-freebsd-scsi Sat Oct 18 09:50:52 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.7/8.8.7) id JAA25477 for freebsd-scsi-outgoing; Sat, 18 Oct 1997 09:50:52 -0700 (PDT) (envelope-from owner-freebsd-scsi) Received: from sax.sax.de (sax.sax.de [193.175.26.33]) by hub.freebsd.org (8.8.7/8.8.7) with SMTP id JAA25472 for ; Sat, 18 Oct 1997 09:50:47 -0700 (PDT) (envelope-from j@uriah.heep.sax.de) Received: (from uucp@localhost) by sax.sax.de (8.6.12/8.6.12-s1) with UUCP id SAA11623 for freebsd-scsi@FreeBSD.org; Sat, 18 Oct 1997 18:50:45 +0200 Received: (from j@localhost) by uriah.heep.sax.de (8.8.7/8.8.5) id SAA17329; Sat, 18 Oct 1997 18:46:10 +0200 (MET DST) Message-ID: <19971018184608.DL48173@uriah.heep.sax.de> Date: Sat, 18 Oct 1997 18:46:08 +0200 From: j@uriah.heep.sax.de (J Wunsch) To: freebsd-scsi@FreeBSD.org (FreeBSD SCSI list) Subject: Re: Cannot happen? References: <19971018143116.KS08343@uriah.heep.sax.de> X-Mailer: Mutt 0.60_p2-3,5,8-9 Mime-Version: 1.0 X-Phone: +49-351-2012 669 X-PGP-Fingerprint: DC 47 E6 E4 FF A6 E9 8F 93 21 E0 7D F9 12 D6 4E Reply-To: joerg_wunsch@uriah.heep.sax.de (Joerg Wunsch) In-Reply-To: <19971018143116.KS08343@uriah.heep.sax.de>; from J Wunsch on Oct 18, 1997 14:31:17 +0200 Sender: owner-freebsd-scsi@FreeBSD.org X-Loop: FreeBSD.org Precedence: bulk I wrote: > Oct 18 14:28:26 uriah /kernel: sd0: ILLEGAL REQUEST asc:21,0 Logical block address out of range field replaceable unit: d sks:cf,7 > But the questions is: how can this happen? Ain't the driver supposed > to limit the requests before calling the SCSI layers? Ain't the > filesystem supposed to never attempt to access outside the disk > limits? The driver does, but accesses through the buffer cache cause harm. Maybe this was a faulty filesystem, but somehow there's a bug that causes a problem when i try to access the very last block of the disk through the buffer cache. Access to the raw device works as expected: j@uriah 55% ./dd if=/dev/rsd0 skip=4197400 of=/dev/null 5+0 records in 5+0 records out 2560 bytes transferred in 0.204268 secs (12533 bytes/sec) (The disk capacity is indeed 4197405 blocks.) j@uriah 56% ./dd if=/dev/sd0 skip=4197400 of=/dev/null dd: /dev/sd0: Invalid argument 4+0 records in 4+0 records out 2048 bytes transferred in 0.055174 secs (37119 bytes/sec) j@uriah 57% Oct 18 18:44:59 uriah /kernel: sd0: ILLEGAL REQUEST asc:21,0 Logical block address out of range field replaceable unit: d sks:cf,7 ...but access to the buffered device bails out when getting at the last block on the disk. -- cheers, J"org joerg_wunsch@uriah.heep.sax.de -- http://www.sax.de/~joerg/ -- NIC: JW11-RIPE Never trust an operating system you don't have sources for. ;-)