| Summary: | repeated arrival/departure of disks leads to panic in dscheck | ||
|---|---|---|---|
| Product: | Base System | Reporter: | mjacob <mjacob> |
| Component: | kern | Assignee: | freebsd-bugs (Nobody) <bugs> |
| Status: | Closed FIXED | ||
| Severity: | Affects Only Me | ||
| Priority: | Normal | ||
| Version: | Unspecified | ||
| Hardware: | Any | ||
| OS: | Any | ||
|
Description
mjacob
1999-10-23 21:00:00 UTC
> >Description:
>
> repeated arrivals/departures of disks, sometimes with the labels changed,
> yields a panic:
>
> Stopped at dscheck+0x53: movl 0x10(%edx),%esi
> db> t
> dscheck(c3327a38,0) at dscheck+0x53
> diskstrategy(c3327a38,c0ae4780,200,c0a4db80,0) at diskstrategy+0xad
> readdisklabel(c0ae4780,c0a51600,c0a4db80,c0b1e8e0,c0a4db80) at readdisklabel+0x5
> 3
> dsopen(c0a4db80,2000,0,c0b1e8ec,c0b1e8f0) at dsopen+0x248
> diskopen(c0a4db80,1,2000,c7c77800,0) at diskopen+0xdb
Rev.1.39 of scsi_da.c (actually, all revs. of subr_disk.c) seems to be
quite buggy. diskopen(), at least, doesn't seem to do sufficient locking.
The old daopen() holds a lock for essentially the whole open, but
diskopen() allows concurrent opens (and closes!). Bad things probably
happen if the label is changed. Even null changes may cause problems if
they are not atomic.
Bruce
State Changed From-To: open->closed |