Uploaded image for project: 'Lustre'
  1. Lustre
  2. LU-5367

(mdt_handler.c:2782:mdt_lock_handle_fini()) ASSERTION( !lustre_handle_is_used(&lh->mlh_pdo_lh) ) failed

XMLWordPrintable

    • 3
    • 14971

      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.

            jhammond John Hammond
            jhammond John Hammond
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: