NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

kern/42532: "dm" driver crashes on concurrent access



>Number:         42532
>Category:       kern
>Synopsis:       "dm" driver crashes on concurrent access
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Dec 27 23:25:00 +0000 2009
>Originator:     tron%zhadum.org.uk@localhost
>Release:        NetBSD 5.99.22 2009-12-20 sources
>Organization:
Matthias Scheler                                  http://zhadum.org.uk/
>Environment:
System: NetBSD lyssa.zhadum.org.uk 5.99.22 NetBSD 5.99.22 (LYSSA) #0: Sun Dec 
20 13:57:52 GMT 2009 tron%lyssa.zhadum.org.uk@localhost:/src/sys/compile/LYSSA 
i386
Architecture: i386
Machine: i386
>Description:
The code which is supposed to report iostat(8) data for the "dm" driver
can lead to kernel panics:

vg0-lv1: busy < 0
panic: iostat_unbusy
cpu2: Begin traceback...
vg0-lv1: busy < 0?
(0,0,ce8a0acc,0,ffffffff,1a,0,d09e,0,0) at 0
cpu2: End traceback...

dumping to dev 0,1 offset 4195364
dump succeeded

Here is the back-trace:

#0  0xc02488ab in cpu_reboot ()
#1  0xc031cba4 in panic ()
#2  0xc0312e5a in iostat_unbusy ()
#3  0xce9a7694 in dmstrategy ()
#4  0xc0301717 in spec_strategy ()
#5  0xc03db050 in VOP_STRATEGY ()
#6  0xc0193857 in genfs_do_io ()
#7  0xc019401e in genfs_gop_write ()
#8  0xc0194c5f in genfs_do_putpages ()
#9  0xc01954e8 in genfs_putpages ()
#10 0xc03dacd0 in VOP_PUTPAGES ()
#11 0xc05d5c27 in ffs_full_fsync ()
#12 0xc05d5f30 in ffs_fsync ()
#13 0xc03db74d in VOP_FSYNC ()
#14 0xc0321d31 in sched_sync ()
#15 0xc01002e1 in lwp_trampoline ()

Kernel with debugging symbols:

#0  cpu_reboot (howto=260, bootstr=0x0)
    at /usr/src/sys/arch/i386/i386/machdep.c:861
#1  0xc031cba4 in panic (fmt=0xc04a82e2 "iostat_unbusy")
    at /usr/src/sys/kern/subr_prf.c:299
#2  0xc0312e5a in iostat_unbusy (stats=0xce6fea80, bcount=65536, read=0)
    at /usr/src/sys/kern/subr_iostat.c:208
#3  0xce9a7694 in ?? ()
#4  0xce6fea80 in ?? ()
#5  0x00010000 in ?? ()
#6  0x00000000 in ?? ()

>How-To-Repeat:
1.) Create a volume group consisting of two physical devices.
2.) Create two logical volumes on the volume group.
3.) Create and mount file-systems on the two logical volume.
4.) un-tar NetBSD sources to both file-systems in parallel.

>Fix:
None provided.



Home | Main Index | Thread Index | Old Index