Details
-
Bug
-
Resolution: Fixed
-
Blocker
-
Lustre 2.10.0, Lustre 2.11.0
-
None
-
2
-
9223372036854775807
Description
Consider the following scenarios:
1) The Thread1 calls osd_attr_set() to set flags on the object. The osd_attr_set() will call the osd_xattr_get() with holding the read mode semaphore on the object::oo_guard.
2) The Thread2 calls osd_declare_destroy() to destroy the object, it will down_write() on the object::oo_gurad, but be blocked by the Thread1's granted read mode semaphore.
3) The osd_xattr_get() triggered by the osd_xattr_set() will also down_read() on the object::oo_guard. But it will be blocked by the Thread2's pending down_write() request.
Then the Thread1 and the Thread2 deadlock.
Attachments
Activity
Link | Original: This issue is related to JFC-26 [ JFC-26 ] |
Fix Version/s | New: Lustre 2.10.4 [ 13691 ] |
Affects Version/s | New: Lustre 2.10.0 [ 12204 ] | |
Affects Version/s | New: Lustre 2.11.0 [ 13091 ] | |
Affects Version/s | Original: LTS [ 13791 ] |
Link | New: This issue is related to JFC-26 [ JFC-26 ] |
Link | New: This issue is related to JFC-20 [ JFC-20 ] |
Resolution | New: Fixed [ 1 ] | |
Status | Original: In Progress [ 3 ] | New: Resolved [ 5 ] |
Affects Version/s | New: LTS [ 13791 ] |
John L. Hammond (john.hammond@intel.com) merged in patch https://review.whamcloud.com/31514/
Subject:
LU-10769osd-zfs: fix deadlock on osd_object::oo_guardProject: fs/lustre-release
Branch: b2_10
Current Patch Set:
Commit: 0e51abb8a512213b58579e66a9d74133001877ff