DragonFly BSD
DragonFly bugs List (threaded) for 2012-08
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

[DragonFlyBSD - Bug #2374] softupdates locking bug


From: Venkatesh Srinivas via Redmine <bugtracker-admin@xxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 17 Aug 2012 14:08:12 -0700

Issue #2374 has been updated by Venkatesh Srinivas.


Some hours of fsstress testing hit a deadlock w/ softdep and the patch; I haven't been able to root case it, but here are some hints:

1) the syncer (syncer0) is waiting for vnlru to make progress; its backtrace is:

(bioops callback)
softdep_process_worklist
process_worklist_item
handle_workitem_remove
         *_ WE DO NOT HOLD THE SOFTDEP LOCK AROUND VFS_VGET _*
vfs_vget
ffs_vget
getnewvnode
allocvnode
vnlru_proc_wait

2) vnlru is not making progress; it is trying to lock a buffer associated with UFS, its backtrace is:
  ssleep
  acquire
  lockmgr
  (BUF_TIMELOCK)
  vinvalbuf_bp
  vlrureclaim
  mountlist_scan

3) The buffer in question is a BUF_CMD_WRITE buffer, its lock is marked by LK_KERNTHREAD, and is a softdep buffer (seen via b_ops being the softdep bioops). The vnode associated with the buffer is held locked by the vnlru thread. I think these are the buffer's flags : B_CACHE|B_HASHED|B_BNOCLIP|B_IODEBUG|B_VNCLEAN|B_VMIO
.



----------------------------------------
Bug #2374: softupdates locking bug
http://bugs.dragonflybsd.org/issues/2374

Author: Venkatesh Srinivas
Status: Feedback
Priority: Normal
Assignee: 
Category: 
Target version: 


softupdates may still have some locking issues:

In -master:
* http://leaf.dragonflybsd.org/~marino/core/core.20120523.txt
Panic where softdep_update_inodeblock() called bwrite() with a NULL buffer

getdirtybuf returned 'gotit', yet it either returned a NULL bp or the buffer was nulled after
it was saved in the inodedep structure. getdirtybuf can block and does release the softdep
lock while locking dirty buffers, but it is not clear if anyone can race in and result in the failure mode seen.

* (from 3.0.3 catchall bug (2336)):
Deadlock in -master with softdep. No more details available.




-- 
You have received this notification because you have either subscribed to it, or are involved in it.
To change your notification preferences, please click here: http://bugs.dragonflybsd.org/my/account



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