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

"lfs getdirstripe -y" doesn't print YAML formatted output

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Minor
    • Lustre 2.16.0
    • Lustre 2.16.0, Lustre 2.12.9
    • 3
    • 9223372036854775807

    Description

      It appears that the "lfs getdirstripe -y <striped_dir>" command does not print YAML-formatted output (the output is the same regardless of whether -y is used or not).

      Unsurprisingly, there is also no subtest that is using "lfs getdirstripe -y", which is why nobody noticed if it was broken and/or even worked in the first place.

      Looking at lmv_dump_user_lmm(), it appears that the "LDF_YAML" flag is being checked, which was in turn set in llapi_lov_dump_user_lmm() from "fp_yaml", but this appears to be ignored in the stripe-printing loop:

              if (verbose & VERBOSE_OBJID && lum->lum_magic != LMV_USER_MAGIC) {
                      llapi_printf(LLAPI_MSG_NORMAL, "%s", separator);
                      if (lum->lum_stripe_count > 0)
                              llapi_printf(LLAPI_MSG_NORMAL,
                                           "mdtidx\t\t FID[seq:oid:ver]\n");
                      for (i = 0; i < lum->lum_stripe_count; i++) {
                              int idx = objects[i].lum_mds;
                              struct lu_fid *fid = &objects[i].lum_fid;
      
                              if ((obdindex == OBD_NOT_FOUND) || (obdindex == idx))
                                      llapi_printf(LLAPI_MSG_NORMAL,
                                                   "%6u\t\t "DFID"\t\t%s\n",
                                                  idx, PFID(fid),
                                                  obdindex == idx ? " *" : "");
                      }
              }
      

      It would also make sense to print the lmv_pool line in the header block before the dirstripes, should there ever be an MDT pool added.

      The behavior of the "-v|--verbose" flag is also puzzling, since using it will print nothing when "lfs getdirstripe" is run.

      Attachments

        Issue Links

          Activity

            People

              fdilger Fred Dilger
              adilger Andreas Dilger
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: