Details
-
Bug
-
Resolution: Fixed
-
Minor
-
Lustre 2.7.0
-
3
-
14971
Description
In mdt_object_local_lock() we should call mdt_object_unlock() if mdt_fid_lock() fails on the pdo lock. This is because ldlm_cli_enqueue_local() stores the cookie in the lock handle very early on.
rc = mdt_fid_lock(ns, &lh->mlh_pdo_lh, lh->mlh_pdo_mode,
policy, res_id, dlmflags,
info->mti_exp == NULL ? NULL :
&info->mti_exp->exp_handle.h_cookie);
if (unlikely(rc))
RETURN(rc);
Currently if mdt_fid_lock() fails then we are likely to see
(mdt_handler.c:2782:mdt_lock_handle_fini()) ASSERTION( !lustre_handle_is_used(&lh->mlh_pdo_lh) ) failed
at the end of the handler.
This was found via memory allocation fault injection.
Attachments
Issue Links
Activity
Remote Link | Original: This issue links to "Page (HPDD Community Wiki)" [ 14725 ] |
Remote Link | Original: This issue links to "Page (HPDD Community Wiki)" [ 14623 ] |
Remote Link | Original: This issue links to "Page (HPDD Community Wiki)" [ 14623 ] | New: This issue links to "Page (HPDD Community Wiki)" [ 14623 ] |
Remote Link | New: This issue links to "Page (HPDD Community Wiki)" [ 14725 ] |
Remote Link | New: This issue links to "Page (HPDD Community Wiki)" [ 14623 ] |
Link | Original: This issue is related to LDEV-14 [ LDEV-14 ] |
Link | New: This issue is related to LDEV-13 [ LDEV-13 ] |
Resolution | New: Fixed [ 1 ] | |
Status | Original: Reopened [ 4 ] | New: Closed [ 6 ] |
Labels | Original: easy ldlm lu_st malloc mdt | New: easy ldlm malloc mdt |