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

lod_attr_set() skips attr_set on osp objects incorrectly

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: Lustre 2.6.0
    • Fix Version/s: Lustre 2.6.0
    • Labels:
    • Severity:
      3
    • Rank (Obsolete):
      14780

      Description

      This is a regression introduced by fix of LU-4690 "lod: separate master object with master stripe" (http://review.whamcloud.com/9511 commit 60e07b972114df24105a3a1bfa7365892f72a4a7).

      In lod_attr_set():

              for (i = 0; i < lo->ldo_stripenr; i++) {
                      LASSERT(lo->ldo_stripe[i]);
      +               if (dt_object_exists(lo->ldo_stripe[i]) == 0)
      +                       continue;
                      rc = dt_attr_set(env, lo->ldo_stripe[i], attr, handle, capa);
                      if (rc) {
                              CERROR("failed declaration: %d\n", rc);
      

      Since dt_object_exists() always return false for the osp object (for OST object), any attr_set to osp object will be skipped mistakenly, and chown/chgrp won't set UID/GID to OST objects at the end.

      As per Di's suggestion, we'd add additional IS_DIR checking here.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                niu Niu Yawei (Inactive)
                Reporter:
                niu Niu Yawei (Inactive)
              • Votes:
                0 Vote for this issue
                Watchers:
                6 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: