kern/68978: [crash] firewire crashes with failing hard disk,
loose pointers in kernel?
Heikki Suonsivu
hsu at bbnetworks.net
Wed Mar 28 22:10:13 UTC 2007
The following reply was made to PR kern/68978; it has been noted by GNATS.
From: Heikki Suonsivu <hsu at bbnetworks.net>
To: Harrison Grundy <astrodog at gmail.com>
Cc: bug-followup at FreeBSD.org
Subject: Re: kern/68978: [crash] firewire crashes with failing hard disk,
loose pointers in kernel?
Date: Thu, 29 Mar 2007 00:38:52 +0300
Harrison Grundy wrote:
> As absurd as this might sound, can you confirm if this still occurs in 6.x?
The external drives are still misbehaving, though the symptoms have been
changing by time. I get panics after the umass gets confused. I was
wrong in my original report, it was not just firewire, and not failing
disk (unless all 9+ external drives I have used are bad). The same
problem occurs with Maxtor, Lacie external disks, various models, and
the problems occur both USB and firewire connected disks. This happens
at least on two PentiumIII computers and one AMD64. I have not tested
others. The more I load the disks, the more often this occurs. The
rate of crashes on slow, but active computer with 5 drives is something
like couple of 2-3 times per month, on passive fast but passive computer
with 3 drives maybe every 2 months. I cannot see any difference between
drives from different manufacturers, but I haven't done any scientific
analysis :-/
I think I might have filed a new PR so it might a good idea to check for
duplicates.
Below are some excerpts from various symptoms.
I keep getting these when USB or firewire disks are loaded a lot.
When doing a large copy these pop into console at rate of every few
seconds, at random-looking intervals.
Mar 29 00:22:32 lelu kernel: Unknown service addr 0x0000:0x09aab800
WREQB(1) src=0xffc1 data=8
Mar 29 00:22:32 lelu kernel: Unknown service addr 0x0000:0x0ad03000
WREQB(1) src=0xffc1 data=8
Mar 29 00:22:37 lelu kernel: Unknown service addr 0x0000:0x0e37c000
WREQB(1) src=0xffc1 data=8
Mar 29 00:22:46 lelu kernel: Unknown service addr 0x0000:0x15fd6800
WREQB(1) src=0xffc1 data=8
Mar 29 00:22:46 lelu kernel: Unknown service addr 0x0000:0x0e716000
WREQB(1) src=0xffc1 data=8
Mar 29 00:22:47 lelu kernel: Unknown service addr 0x0000:0x0ab54000
WREQB(1) src=0xffc1 data=8
Mar 29 00:22:47 lelu kernel: Unknown service addr 0x0000:0x156e4000
WREQB(1) src=0xffc1 data=8
Mar 29 00:22:50 lelu kernel: Unknown service addr 0x0000:0x0df7a000
WREQB(1) src=0xffc1 data=8
Mar 29 00:22:57 lelu kernel: Unknown service addr 0x0000:0x10209000
WREQB(1) src=0xffc1 data=8
Mar 29 00:22:58 lelu kernel: Unknown service addr 0x0000:0x150f7000
WREQB(1) src=0xffc1 data=8
Mar 29 00:23:01 lelu kernel: Unknown service addr 0x0000:0x148a5800
WREQB(1) src=0xffc1 data=8
Mar 29 00:23:02 lelu kernel: Unknown service addr 0x0000:0x10f27000
WREQB(1) src=0xffc1 data=8
Mar 29 00:23:02 lelu kernel: Unknown service addr 0x0000:0x0702c000
WREQB(1) src=0xffc1 data=8
Then, at some point I might see
Mar 5 12:18:47 lelu kernel: umass0: Invalid CSW: tag 145294 should be
145295
Mar 5 12:18:47 lelu kernel: umass0: Invalid CSW: tag 145295 should be
145296
Mar 5 12:18:48 lelu kernel: umass0: Invalid CSW: tag 145296 should be
145297
Mar 5 12:18:48 lelu kernel: umass0: Invalid CSW: tag 145297 should be
145298
Mar 5 12:18:49 lelu kernel: umass0: Invalid CSW: tag 145298 should be
145299
Mar 5 12:18:49 lelu kernel:
g_vfs_done():da0s1e[READ(offset=150001205248, lengt
h=16384)]error = 5
Mar 5 12:18:49 lelu kernel:
g_vfs_done():da0s1e[READ(offset=150001221632, lengt
h=16384)]error = 5
Mar 5 12:18:49 lelu kernel: g_vfs_done():da0s1e[WRITE(offset=114688,
length=163
84)]error = 5
Mar 5 12:18:49 lelu kernel: umass0: Invalid CSW: tag 145299 should be
145300
Mar 5 12:18:50 lelu kernel: umass0: Invalid CSW: tag 145300 should be
145301
Mar 5 12:18:51 lelu kernel: umass0: Invalid CSW: tag 145301 should be
145302
Mar 5 12:18:51 lelu kernel: umass0: Invalid CSW: tag 145302 should be
145303
Mar 5 12:18:52 lelu kernel: umass0: Invalid CSW: tag 145303 should be
145304
Mar 5 12:18:52 lelu kernel: g_vfs_done():da0s1e[READ(offset=6209536,
length=204
8)]error = 5
Mar 5 12:18:52 lelu kernel: umass0: Invalid CSW: tag 145304 should be
145305
Mar 5 12:18:53 lelu kernel: umass0: Invalid CSW: tag 145305 should be
145306
Mar 5 12:18:54 lelu kernel: umass0: Invalid CSW: tag 145308 should be
145309
Mar 5 12:18:54 lelu kernel:
g_vfs_done():da0s1e[READ(offset=411775385600, lengt
h=16384)]error = 5
Mar 5 12:18:54 lelu kernel:
g_vfs_done():da0s1e[WRITE(offset=406895493120, leng
th=16384)]error = 5
Mar 5 12:18:55 lelu kernel: umass0: Invalid CSW: tag 145309 should be
145310
Mar 5 12:22:10 lelu kernel: umass0: BBB reset failed, TIMEOUT
Mar 5 12:23:15 lelu kernel: umass0: BBB bulk-in clear stall failed, TIMEOUT
Mar 5 12:24:20 lelu kernel: umass0: BBB bulk-out clear stall failed,
TIMEOUT
Mar 5 12:26:30 lelu kernel: umass0: BBB reset failed, TIMEOUT
Mar 5 12:27:35 lelu kernel: umass0: BBB bulk-in clear stall failed, TIMEOUT
Mar 5 12:28:40 lelu kernel: umass0: BBB bulk-out clear stall failed,
TIMEOUT
Mar 5 12:30:50 lelu kernel: umass0: BBB reset failed, TIMEOUT
Mar 5 12:31:55 lelu kernel: umass0: BBB bulk-in clear stall failed, TIMEOUT
Mar 5 12:33:00 lelu kernel: umass0: BBB bulk-out clear stall failed,
TIMEOUT
Mar 5 12:35:10 lelu kernel: umass0: BBB reset failed, TIMEOUT
Mar 5 12:36:15 lelu kernel: umass0: BBB bulk-in clear stall failed, TIMEOUT
Mar 5 12:37:20 lelu kernel: umass0: BBB bulk-out clear stall failed,
TIMEOUT
...
Mar 5 21:43:15 lelu kernel: umass0: BBB bulk-out clear stall failed,
TIMEOUT
Mar 5 21:44:01 lelu kernel: umass0: BBB bulk-out clear stall failed,
IOERROR
Mar 5 21:44:01 lelu kernel: umass0: BBB reset failed, IOERROR
Mar 5 21:44:01 lelu kernel: g_vfs_done():da0s1e[WRITE(offset=114688,
length=163
84)]error = 5
Mar 5 21:44:01 lelu kernel:
g_vfs_done():da0s1e[READ(offset=411775860736, lengt
h=16384)]error = 5
Mar 5 21:44:01 lelu kernel: umass0: BBB bulk-out clear stall failed,
IOERROR
Mar 5 21:44:01 lelu kernel: umass0: BBB reset failed, IOERROR
Mar 5 21:44:01 lelu kernel: umass0: BBB bulk-out clear stall failed,
IOERROR
Mar 5 21:44:01 lelu kernel:
g_vfs_done():da0s1e[READ(offset=411775877120, lengt
h=16384)]error = 5
Mar 5 21:44:01 lelu kernel: umass0: BBB reset failed, IOERROR
(Sorry about wrapping)
This usually ends up with panic, or "disk removed from system" thing
(which also usually leads to panic when shutting down or rebooting).
The panics look like coming from the filesystem code when a misbehaving
disk disappears or locks up or gets confused, and filesystem code freaks
out on something it does not expect.
It might be triggered by buggy disks or USB/FW controllers, but if that
would be true there are lots of bad hardware, as I have not yet found a
single working combination. I have had 3 maxtor models and 3 Lacie
models. Windows must get around this some way, as I have not seen
people reporting this flaky operation under windows (though, it might be
more difficult to tell the difference and people might use the drives
less actively).
Sometimes I also start getting various I/O errors, which disappear when
resetting the system. fsck might start spewing out bad block messages,
which disappear when resetting the computer and/or disks.
Sometimes resetting the computer might not be enough, but also disks
needs to be power cycled. This is rare (maybe couple of times a year).
I not seen problems like these on Windows or Macs but the usage pattern
is very different, mostly occasional backups. The drives causing grief
above are native bsd formatted drives.
I have not seen this on 2.5 inch external drives or other USB media, but
I have never had one in active use like these drives are.
More information about the freebsd-bugs
mailing list