Bug 15479

Summary: kernel BUG at fs/dcache.c:670
Product: File System Reporter: Andreas Schwab (schwab)
Component: VFSAssignee: fs_vfs
Severity: normal CC: ben, maciej.rutecki, rjw
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 2.6.33 Subsystem:
Regression: Yes Bisected commit-id:
Bug Depends on:    
Bug Blocks: 14885    
Attachments: config

Description Andreas Schwab 2010-03-08 18:53:17 UTC
Created attachment 25410 [details]

Commit 86acdca1b63e6890540fa19495cfc708beff3d8b (fix autofs/afs/etc. magic mountpoint breakage) causes this BUG when running pidof:

ida_remove called for id=13 which is not allocated.
BUG: Dentry 10433d14{i=f000004e,n=kmsg} still in use (1) [unmount of proc proc]
kernel BUG at fs/dcache.c:670!
*** TRAP #7 ***   FORMAT=0
Current process id is 1014
Modules linked in: nfs lockd nfs_acl sunrpc ipv6 dm_snapshot dm_mirror dm_region_hash dm_log dm_mod
PC: [<0007d56a>] shrink_dcache_for_umount_subtree+0x1ee/0x1f2
SR: 2310  SP: 10977ec4  a2: 10951030
d0: 00000022    d1: 0000145e    d2: 00000001    d3: 0024ca2e
d4: 0007cc0a    d5: 0007f064    a0: 0028bdbc    a1: 0028bdc0
Process pidof (pid: 1014, task=10951030)
Frame format=0 
Stack from 10977ef8:
        00243288 0024b83b 0000029e 0024b847 10433d14 f000004e 10433d6c 00000001
        0024ca2e 0080d33e 00000003 00000000 00000004 eff06a74 0080d200 0007d37c
        00207834 eff069f8 0007d598 00a01694 0080d200 0028ecc6 0006fc7e 0080d200
        0080d200 0028ecc6 c010d7a8 0006fd64 0080d200 10965f00 0007048a 0080d200
        0080d23a 1082c4d0 10965f40 0006bdd6 0080d200 1082c4d0 10965f00 1082c4d0
        10965f00 ffffffef 1082c4d0 10965f04 0006be54 1082c4d0 10965f00 80005650
Call Trace: [<0007d37c>] shrink_dcache_for_umount_subtree+0x0/0x1f2
 [<0007d598>] shrink_dcache_for_umount+0x2a/0x62
 [<0006fc7e>] generic_shutdown_super+0x1a/0xb0
 [<0006fd64>] kill_anon_super+0x18/0x3c
 [<0007048a>] deactivate_super+0x5a/0x78
 [<0006bdd6>] filp_close+0x72/0x90
 [<0006be54>] sys_close+0x60/0x88
 [<00002662>] syscall+0x8/0xc

This is triggered when pidof close the file after reading one of the /proc/$pid/stat files.
Comment 1 Rafael J. Wysocki 2010-03-18 21:50:10 UTC
Caused by:

commit 86acdca1b63e6890540fa19495cfc708beff3d8b
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Tue Dec 22 23:45:11 2009 -0500

    fix autofs/afs/etc. magic mountpoint breakage

First-Bad-Commit : 86acdca1b63e6890540fa19495cfc708beff3d8b
Comment 2 Andreas Schwab 2010-03-19 10:46:25 UTC
Apparently this was a gcc bug.  No longer reproducible with gcc 4.5.0 20100315.
Comment 3 Ben Hutchings 2010-03-29 22:43:32 UTC
(In reply to comment #2)
> Apparently this was a gcc bug.  No longer reproducible with gcc 4.5.0
> 20100315.

Got any more detail on the gcc bug? I recently received a bug report
<http://bugs.debian.org/575727> with an oops on the same line. The compiler version was gcc 4.4.3 AFAIK.