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

client doesn't send layout version if it's 0

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • Minor
    • None
    • None
    • 3
    • 9223372036854775807

    Description

      the client doesn't set OBD_MD_LAYOUT_VERSION if current layout version is 0

                              if (io->ci_layout_version > 0) {
                                      /* verify layout version */
                                      oa->o_valid |= OBD_MD_LAYOUT_VERSION;
      

      then OST just skips layout version check:

              /* need to verify layout version */
              if (oa->o_valid & OBD_MD_LAYOUT_VERSION) {
                      rc = ofd_verify_layout_version(env, fo, oa);
      

      all regular layouts are created with version 0, meaning that if client doesn't notice layout change for a reason (LU-15300 or eviction from MDS), then OST won't check version even if it's changed and propagated to OST already. this can result in silent data corruption.

      Attachments

        Activity

          People

            bzzz Alex Zhuravlev
            bzzz Alex Zhuravlev
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated: