Subject: kern/29513: FFS+Softdep crash with unfsck-able file-corruption
To: None <kern-bug-people@netbsd.org, gnats-admin@netbsd.org,>
From: None <joff@embeddedARM.com>
List: netbsd-bugs
Date: 02/23/2005 18:50:00
>Number: 29513
>Category: kern
>Synopsis: FFS+Softdep crash with unfsck-able file-corruption
>Confidential: no
>Severity: critical
>Priority: high
>Responsible: kern-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Wed Feb 23 18:50:00 +0000 2005
>Originator: Jesse Off
>Release: 2.99.16
>Organization:
Technologic Systems
>Environment:
2.99.16 evbarm TS7200
>Description:
Was extracting a large tar file that was overwriting some existing files and creating new ones when the filesystem ran out of space. Many messages were printed about disk-full then the kernel panic'ed in inodedep_lookup. Rebooted, fsck complained about a lot of errors but now when booting up it seems the filesystem is irrevocably damaged and the kernel always panics in bootup in the following way:
/: bad dir ino 30336 at offset 0: mangled entry
panic: bad dir
Stopped in pid 8.1 (sh) at 0xc0389bb0: mov r15, r14
Here's output from the original crash during tar xfzv man.tgz -C /
uid 0, pid 380, command tar, on /: file system full
uid 0, pid 380, command tar, on /: file system full
uid 0, pid 380, command tar, on /: file system full
uid 0, pid 380, command tar, on /: file system full
uid 0, pid 380, command tar, on /: file system full
uid 0, pid 380, command tar, on /: file system full
uid 0, pid 380, command tar, on /: file system full
uid 0, pid 380, command tar, on /: file system full
uid 0, pid 380, command tar, on /: file system full
uid 0, pid 380, command tar, on /: file system full
uid 0, pid 380, command tar, on /: file system full
uid 0, pid 380, command tar, on /: file system full
Fatal kernel mode data abort: 'Alignment Fault 3'
trapframe: 0xc2cc16c8
FSR=00000003, FAR=7073088f, spsr=20000013
r0 =c04dafac, r1 =00000439, r2 =00000001, r3 =202d2d20
r4 =70730873, r5 =00000b93, r6 =00000002, r7 =c114d000
r8 =c2eacb30, r9 =00000000, r10=c110f0e4, r11=c2cc1748
r12=c110e000, ssp=c2cc1714, slr=000007ff, pc =c02bf4a0
db> bt
netbsd:inodedep_lookup+0x10
scp=0xc02bf460 rlv=0xc02c6778 (netbsd:flush_inodedep_deps+0x5c)
rsp=0xc2cc174c rfp=0xc2cc17a8
r10=0xc114d000 r9=0x00000b93
r8=0xc2eacb30 r7=0xc0422dd4 r6=0x00000002 r5=0xc2eacb30
r4=0x00000000
netbsd:flush_inodedep_deps+0x10
scp=0xc02c672c rlv=0xc02c61d8 (0xc02c61d8)
rsp=0xc2cc17ac rfp=0xc2cc1818
r10=0xc2cc1980 r9=0xc2cc1980
r8=0xc2eacb30 r7=0x00000000 r6=0x00000000 r5=0xc2eacb30
r4=0x00000000
0xc02c618c
scp=0xc02c618c rlv=0xc02cce70 (netbsd:ffs_full_fsync+0x118)
rsp=0xc2cc181c rfp=0xc2cc18a0
r10=0x00000004 r9=0xc2cc1980
r8=0x00000000 r7=0x00000000 r6=0x00000000 r5=0xc2eacb30
r4=0x00000000
netbsd:ffs_full_fsync+0x10
scp=0xc02ccd68 rlv=0xc02cca40 (netbsd:ffs_fsync+0x64)
rsp=0xc2cc18a4 rfp=0xc2cc1970
r10=0xc2cc1980 r9=0x00000000
r8=0x00000001 r7=0x00000000 r6=0xc2cc1990 r5=0xc2eacb30
r4=0x00000000
netbsd:ffs_fsync+0x10
scp=0xc02cc9ec rlv=0xc03433b0 (0xc03433b0)
rsp=0xc2cc1974 rfp=0xc2cc19e8
r10=0x00000000 r9=0x00000000
r8=0x00000001 r7=0x00000000 r6=0x00000000 r5=0xc2eacb30
r4=0x00000000
0xc03432fc
scp=0xc03432fc rlv=0xc03446f4 (0xc03446f4)
rsp=0xc2cc19ec rfp=0xc2cc1a60
r10=0xc2442cc0 r9=0xc2cc1b1c
r8=0xc2442cc0 r7=0x00000000 r6=0x00000000 r5=0xc2eacb30
r4=0x00000008
0xc03444a0
scp=0xc03444a0 rlv=0xc0344a30 (0xc0344a30)
rsp=0xc2cc1a64 rfp=0xc2cc1a80
r8=0xc2442cc0 r7=0xc04936d4
r6=0xc04936d4 r5=0x00000000 r4=0xc2eacb30
0xc03449f0
scp=0xc03449f0 rlv=0xc034292c (netbsd:getcleanvnode+0x11c)
rsp=0xc2cc1a84 rfp=0xc2cc1ab0
r5=0xc03f37c8 r4=0xc2eacb30
netbsd:getcleanvnode+0x10
scp=0xc0342820 rlv=0xc0342f40 (netbsd:getnewvnode+0xe8)
rsp=0xc2cc1ab4 rfp=0xc2cc1ae8
r8=0x00000000 r7=0x00000000
r6=0xc04df0b4 r5=0xc114e000 r4=0x00000000
netbsd:getnewvnode+0x10
scp=0xc0342e68 rlv=0xc02cabd0 (0xc02cabd0)
rsp=0xc2cc1aec rfp=0xc2cc1b48
r10=0xc114e000 r9=0x00000da3
r8=0xc2cc1bb0 r7=0xc2d36900 r6=0x07080010 r5=0x00001000
r4=0x00000000
0xc02cab7c
scp=0xc02cab7c rlv=0xc02d01e0 (0xc02d01e0)
rsp=0xc2cc1b4c rfp=0xc2cc1c90
r10=0xc114e000 r9=0xc2d34ddc
r8=0x00000c00 r7=0xc2d36900 r6=0x07080010 r5=0x00000000
r4=0x00000000
0xc02cf7a0
scp=0xc02cf7a0 rlv=0xc034202c (netbsd:lookup+0x274)
rsp=0xc2cc1c94 rfp=0xc2cc1d10
r10=0xc03f31d8 r9=0xc2cc1ccc
r8=0xc2cc1e3c r7=0xc2cc1e2c r6=0xc2cc1e50 r5=0xc2d34ddc
r4=0x00000000
netbsd:lookup+0x10
scp=0xc0341dc8 rlv=0xc0341a28 (0xc0341a28)
rsp=0xc2cc1d14 rfp=0xc2cc1d98
r10=0x00000000 r9=0x00039f2c
r8=0xc2eac938 r7=0xc2cc1e50 r6=0x00000000 r5=0xc2cc1e2c
r4=0xc244b0a8
0xc0341900
scp=0xc0341900 rlv=0xc034ca6c (netbsd:rename_files+0xd4)
rsp=0xc2cc1d9c rfp=0xc2cc1ee0
r10=0x00000000 r9=0x00039f2c
r8=0xc2eac938 r7=0x00038664 r6=0xc2442cc0 r5=0x00000000
r4=0x0003d300
netbsd:rename_files+0x10
scp=0xc034c9a8 rlv=0xc038e008 (0xc038e008)
rsp=0xc2cc1ee4 rfp=0xc2cc1f60
r10=0x00000004 r8=0xc244a3e0
r7=0xc0423834 r6=0xc2cc1fb4 r5=0x00000002 r4=0xefa00080
0xc038dec8
scp=0xc038dec8 rlv=0xc038de44 (0xc038de44)
rsp=0xc2cc1f64 rfp=0xc2cc1fb0
r10=0x00039f28 r9=0x00039f2c
r8=0x00000001 r7=0xc04df820 r6=0xc2442cc0 r5=0x00000000
r4=0xc244a3e0
0xc038ddd0
scp=0xc038ddd0 rlv=0xc03910c8 (netbsd:swi_entry+0x28)
rsp=0xc2cc1fb4 rfp=0xbfffea9c
r8=0x00039ee4 r7=0x000361fc
r6=0x00038664 r5=0x00038660 r4=0x0003d300
db>
db> show registers
spsr 0x20000013
r0 0xc04dafac inodedep_hashtbl
r1 0x439
r2 0x1
r3 0x202d2d20
r4 0x70730873
r5 0xb93
r6 0x2
r7 0xc114d000
r8 0xc2eacb30
r9 0
r10 0xc110f0e4
r11 0xc2cc1748
r12 0xc110e000
usr_sp 0xbfffea80
usr_lr 0x11444
svc_sp 0xc2cc1714
svc_lr 0x7ff
pc 0xc02bf4a0 inodedep_lookup+0x50
und_sp 0xc2cc0ff0
abt_sp 0xc01ea000
irq_sp 0xc01f2000
netbsd:inodedep_lookup+0x50: ldr r3, [r4, #0x01c]
>How-To-Repeat:
>Fix: