Bug 137034 - [ufs] [lor] lock-order reversal near vfs_bio.c, ufs_dirhash.c
Summary: [ufs] [lor] lock-order reversal near vfs_bio.c, ufs_dirhash.c
Status: Closed FIXED
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: 8.0-BETA2
Hardware: Any Any
: Normal Affects Only Me
Assignee: freebsd-fs (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-07-23 16:20 UTC by Royce Williams
Modified: 2014-08-22 16:22 UTC (History)
1 user (show)

See Also:


Attachments
file.txt (7.47 KB, text/plain)
2009-07-23 16:20 UTC, Royce Williams
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Royce Williams 2009-07-23 16:20:00 UTC
Unloaded system upgrading from 7.2-SECURITY to 8.0-BETA2 via freebsd-update. Halfway through the second install phase, in which I was running the 8.0-BETA2 kernel but a 7.2-SECURITY userland, I got this LOR:

lock order reversal:
1st 0xc557f310 bufwait (bufwait) @ /usr/src/sys/kern/vfs_bio.c:2558
2nd 0xc5d82600 dirhash (dirhash) @ /usr/src/sys/ufs/ufs/ufs_dirhash.c:285
KDB: stack backtrace:
db_trace_self_wrapper(c0c6baf4,f4b9175c,c08bc995,c08ad6db,c0c6e989,...) at db_trace_self_wrapper+0x26
kdb_backtrace(c08ad6db,c0c6e989,c592bef8,c592f500,f4b917b8,...) at kdb_backtrace+0x29
_witness_debugger(c0c6e989,c5d82600,c0c8f767,c592f500,c0c8f400,...) at _witness_debugger+0x25
witness_checkorder(c5d82600,9,c0c8f400,11d,0,...) at witness_checkorder+0x839
_sx_xlock(c5d82600,0,c0c8f400,11d,c5ff3d24,...) at _sx_xlock+0x85
ufsdirhash_acquire(c557f2b0,f4b918d0,16c,e581c8ac,f4b91888,...) at ufsdirhash_acquire+0x35
ufsdirhash_add(c5ff3d24,f4b918d0,8ac,f4b91874,f4b91878,...) at ufsdirhash_add+0x13
ufs_direnter(c5b96648,cceff324,f4b918d0,f4b91bd0,0,...) at ufs_direnter+0x729
ufs_makeinode(f4b91bd0,0,f4b91abc,f4b91a18,c0bb6745,...) at ufs_makeinode+0x508
ufs_create(f4b91abc,f4b91ad4,0,0,f4b91ba4,...) at ufs_create+0x30
VOP_CREATE_APV(c0d6e7e0,f4b91abc,f4b91bd0,f4b91a54,0,...) at VOP_CREATE_APV+0xa5
vn_open_cred(f4b91ba4,f4b91c5c,1a0,0,c8596900,...) at vn_open_cred+0x215
vn_open(f4b91ba4,f4b91c5c,1a0,c78877e0,0,...) at vn_open+0x3b
kern_openat(d872e480,ffffff9c,28303514,0,602,...) at kern_openat+0x11f
kern_open(d872e480,28303514,0,601,1b6,...) at kern_open+0x35
open(d872e480,f4b91cf8,c,d872e480,c0d4d44c,...) at open+0x30
syscall(f4b91d38) at syscall+0x2a3
Xint0x80_syscall() at Xint0x80_syscall+0x20
--- syscall (5, FreeBSD ELF32, open), eip = 0x281d8833, esp = 0xbfbfe16c, ebp = 0xbfbfe208 ---


The system is using ZFS for some mounts (may not be relevant):

royce@max$ mount
/dev/ad4s1a on / (ufs, local)
devfs on /dev (devfs, local, multilabel)
tank/home on /home (zfs, local, nosuid)
tank on /tank (zfs, local)
tank/tmp on /tmp (zfs, local, noatime, nosuid)
tank/usr on /usr (zfs, local, noatime)
tank/var on /var (zfs, local, noatime, nosuid)

royce@max$ zpool upgrade
This system is currently running ZFS pool version 13.

The following pools are out of date, and can be upgraded.  After being
upgraded, these pools will no longer be accessible by older software versions.

VER  POOL
---  ------------
 6   tank

Fix: Patch attached with submission follows:
How-To-Repeat: 
Probably I/O related, but in brief:

#### Install FreeBSD 7.2.
# freebsd-update fetch install
# shutdown -r now
# ## System is now running 7.2-SECURITY as of 2009-07-21

#### Upgrade to 8.0-BETA2 kernel.
# freebsd-update -r 8.0-BETA2 upgrade
# freebsd-update install
# shutdown -r now
#### Perform second phase of install.
# freebsd-update install

#### LOR occurred here.
Comment 1 Royce Williams 2009-07-23 19:48:37 UTC
Minor non-tech detail: my name is "Royce Williams", not "Royce William"
(typo).
Comment 2 Mark Linimon freebsd_committer freebsd_triage 2009-07-25 02:17:44 UTC
Responsible Changed
From-To: freebsd-bugs->freebsd-fs

Over to maintainer(s).
Comment 3 Sean Nicholas Barkas freebsd_committer freebsd_triage 2009-07-25 11:11:42 UTC
This should be harmless. Take a look at
http://sources.zabbadoz.net/freebsd/lor/261.html

Have you had any problems since the LOR message came up?
Comment 4 Royce Williams 2009-07-25 16:02:58 UTC
Nick Barkas wrote, on 7/25/2009 2:11 AM:
> This should be harmless. Take a look at
> http://sources.zabbadoz.net/freebsd/lor/261.html
> 
> Have you had any problems since the LOR message came up?

None; if harmless, then please close this PR.

I will try to do a better job of detecting duplicate issue reports in
the future.  Sorry for the trouble.

Royce
Comment 5 Sean Nicholas Barkas freebsd_committer freebsd_triage 2009-07-26 12:39:52 UTC
State Changed
From-To: open->closed

This LOR cannot result in deadlock:  
http://sources.zabbadoz.net/freebsd/lor/261.html