lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20150306233907.GF3556@wfg-t540p.sh.intel.com>
Date:	Sat, 7 Mar 2015 07:39:07 +0800
From:	Fengguang Wu <fengguang.wu@...el.com>
To:	David Howells <dhowells@...hat.com>
Cc:	fengguang.wu@...el.com, LKP <lkp@...org>,
	linux-fsdevel@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: [VFS] WARNING: CPU: 0 PID: 151 at fs/dcache.c:406 dput()

Greetings,

0day kernel testing robot got the below dmesg and the first bad commit is

git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs file-pin-devel

commit 692ddb6c6808db7b70678b4cc3332781625c65f8
Author:     David Howells <dhowells@...hat.com>
AuthorDate: Thu Mar 5 14:09:22 2015 +0000
Commit:     David Howells <dhowells@...hat.com>
CommitDate: Fri Mar 6 15:25:07 2015 +0000

    VFS: Impose ordering on accesses of d_inode and d_flags
    
    Impose ordering on accesses of d_inode and d_flags to avoid the need to do
    this:
    
    	if (!dentry->d_inode || d_is_negative(dentry)) {
    
    when this:
    
    	if (d_is_negative(dentry)) {
    
    should suffice.
    
    This check is especially problematic if a dentry can have its type field set
    to something other than DENTRY_MISS_TYPE when d_inode is NULL (as in
    unionmount).
    
    What we really need to do is stick a write barrier between setting d_inode and
    setting d_flags and a read barrier between reading d_flags and reading
    d_inode.
    
    Signed-off-by: David Howells <dhowells@...hat.com>

+----------------------------------------------+------------+------------+------------+
|                                              | 1dc0c0acc4 | 692ddb6c68 | 448291320b |
+----------------------------------------------+------------+------------+------------+
| boot_successes                               | 60         | 0          | 0          |
| boot_failures                                | 0          | 20         | 12         |
| WARNING:at_fs/dcache.c:#dput()               | 0          | 20         | 12         |
| WARNING:at_fs/dcache.c:#d_lru_shrink_move()  | 0          | 20         | 9          |
| WARNING:at_fs/dcache.c:#shrink_dentry_list() | 0          | 20         | 9          |
| BUG:unable_to_handle_kernel                  | 0          | 20         | 9          |
| Oops                                         | 0          | 20         | 9          |
| Kernel_panic-not_syncing:Fatal_exception     | 0          | 20         | 9          |
| backtrace:do_unlinkat                        | 0          | 20         | 9          |
| backtrace:SyS_unlink                         | 0          | 20         | 9          |
| backtrace:do_mount                           | 0          | 20         | 9          |
| backtrace:SyS_mount                          | 0          | 20         | 9          |
| backtrace:do_rmdir                           | 0          | 0          | 3          |
| backtrace:SyS_rmdir                          | 0          | 0          | 3          |
+----------------------------------------------+------------+------------+------------+

/bin/sh: /proc/self/fd/9: No such file or directory
[   37.852881] sock: process `trinity-main' is using obsolete setsockopt SO_BSDCOMPAT
[   86.942666] ------------[ cut here ]------------
[   86.947109] WARNING: CPU: 0 PID: 151 at fs/dcache.c:406 dput+0x1af/0x23d()
[   86.948285] CPU: 0 PID: 151 Comm: shutdown Not tainted 4.0.0-rc1-00164-g692ddb6 #6
[   86.949278]  0000000000000009 ffff880013be7de8 ffffffff81527be5 ffffffff810e02e9
[   86.954376]  0000000000000000 ffff880013be7e28 ffffffff810a558a ffff880013be7e18
[   86.955433]  ffffffff8118d3dc ffff8800113a4d50 ffff8800113a4dd0 0000000000000000
[   86.956428] Call Trace:
[   86.956766]  [<ffffffff81527be5>] dump_stack+0x4f/0x7b
[   86.957441]  [<ffffffff810e02e9>] ? console_unlock+0x398/0x3c7
[   86.958234]  [<ffffffff810a558a>] warn_slowpath_common+0x9c/0xb6
[   86.959054]  [<ffffffff8118d3dc>] ? dput+0x1af/0x23d
[   86.959739]  [<ffffffff810a566f>] warn_slowpath_null+0x1a/0x1c
[   86.960506]  [<ffffffff8118d3dc>] dput+0x1af/0x23d
[   86.961110]  [<ffffffff81187477>] do_unlinkat+0x137/0x269
[   86.961835]  [<ffffffff8152f796>] ? ret_from_sys_call+0x24/0x5f
[   86.962664]  [<ffffffff810d817d>] ? trace_hardirqs_on_caller+0x191/0x1ad
[   86.963499]  [<ffffffff8121e1ab>] ? trace_hardirqs_on_thunk+0x3a/0x3f
[   86.964320]  [<ffffffff811875ea>] SyS_unlink+0x16/0x18
[   86.965104]  [<ffffffff8152f76d>] system_call_fastpath+0x16/0x1b
[   86.966067] ---[ end trace ec83e162d3687f78 ]---
[   86.999251] rc.local (128) used greatest stack depth: 13728 bytes left

git bisect start 448291320bc651867eee7513873ccad4f6d4aa08 13a7a6ac0a11197edcd0f756a035f472b42cdf8b --
git bisect good 791b19cb9cca1266c1ad4a63e521e9f76f7825b9  # 00:29     20+      0  Merge 'block/blk-polled-io' into devel-cairo-rand-201503062346
git bisect  bad 4cb456361b7b19e93abfcdbecf519c7366aec44d  # 00:35      0-      2  Merge 'dhowells-fs/file-pin' into devel-cairo-rand-201503062346
git bisect  bad f0386755652a0bef81e2980e0ba7147094383d7b  # 00:40      0-      7  VFS: (Scripted) Convert ->d_inode to d_inode() in fs/ncpfs/
git bisect  bad eed88f7305fd820023b18f62275b5a9d072ce81c  # 00:54      0-     20  VFS: (Scripted) Convert ->d_inode to d_inode() in fs/coda/
git bisect  bad 692ddb6c6808db7b70678b4cc3332781625c65f8  # 01:09      0-     10  VFS: Impose ordering on accesses of d_inode and d_flags
git bisect good ab14d7bf58701a71e4d5fa4a35ae1be314815507  # 01:14     20+      0  VFS: Fix up missed bits of reiserfs to use d_inode()
git bisect good abd729c4342d698950473b6be359e73111982c02  # 01:24     20+      0  VFS: Fix up some ->d_inode accesses in the chelsio driver
git bisect good dabd8775d19de85a0eeacc08804608100056755f  # 01:26     20+      0  NFS: Don't use d_inode as a variable name
git bisect good 1dc0c0acc45f01542179009e73e3965870917bd2  # 01:34     20+      0  VFS: Add owner-filesystem positive/negative dentry checks
# first bad commit: [692ddb6c6808db7b70678b4cc3332781625c65f8] VFS: Impose ordering on accesses of d_inode and d_flags
git bisect good 1dc0c0acc45f01542179009e73e3965870917bd2  # 01:36     60+      0  VFS: Add owner-filesystem positive/negative dentry checks
# extra tests with DEBUG_INFO
git bisect  bad 692ddb6c6808db7b70678b4cc3332781625c65f8  # 01:41      0-      1  VFS: Impose ordering on accesses of d_inode and d_flags
# extra tests on HEAD of linux-devel/devel-cairo-rand-201503062346
git bisect  bad 448291320bc651867eee7513873ccad4f6d4aa08  # 01:41      0-     12  0day head guard for 'devel-cairo-rand-201503062346'
# extra tests on tree/branch dhowells-fs/file-pin-devel
git bisect  bad 692ddb6c6808db7b70678b4cc3332781625c65f8  # 01:47      0-     20  VFS: Impose ordering on accesses of d_inode and d_flags
# extra tests with first bad commit reverted
# extra tests on tree/branch linus/master
git bisect good 99aedde0869ce194539166ac5a4d2e1a20995348  # 01:59     60+      0  Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
# extra tests on tree/branch next/master
git bisect good 28855005be1d6a0a041de46fd2e61da2b796abff  # 02:05     60+      0  Add linux-next specific files for 20150306


This script may reproduce the error.

----------------------------------------------------------------------------
#!/bin/bash

kernel=$1
initrd=quantal-core-x86_64.cgz

wget --no-clobber https://github.com/fengguang/reproduce-kernel-bug/raw/master/initrd/$initrd

kvm=(
	qemu-system-x86_64
	-cpu kvm64
	-enable-kvm
	-kernel $kernel
	-initrd $initrd
	-m 320
	-smp 2
	-net nic,vlan=1,model=e1000
	-net user,vlan=1
	-boot order=nc
	-no-reboot
	-watchdog i6300esb
	-rtc base=localtime
	-serial stdio
	-display none
	-monitor null 
)

append=(
	hung_task_panic=1
	earlyprintk=ttyS0,115200
	rd.udev.log-priority=err
	systemd.log_target=journal
	systemd.log_level=warning
	debug
	apic=debug
	sysrq_always_enabled
	rcupdate.rcu_cpu_stall_timeout=100
	panic=-1
	softlockup_panic=1
	nmi_watchdog=panic
	oops=panic
	load_ramdisk=2
	prompt_ramdisk=0
	console=ttyS0,115200
	console=tty0
	vga=normal
	root=/dev/ram0
	rw
	drbd.minor_count=8
)

"${kvm[@]}" --append "${append[*]}"
----------------------------------------------------------------------------

Thanks,
Fengguang

View attachment "dmesg-quantal-client9-43:20150307010904:x86_64-randconfig-c2-0305:4.0.0-rc1-00164-g692ddb6:6" of type "text/plain" (52604 bytes)

View attachment "config-4.0.0-rc1-00164-g692ddb6" of type "text/plain" (67821 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ