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

Shouldn't deleting objects in mds_lov_update_objids()

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Minor
    • Lustre 2.1.5, Lustre 1.8.9
    • Lustre 1.8.8
    • None
    • 3
    • 6200

    Description

      There is a code snippet from The code in mds_lov_update_objids():

                      if (id > data[idx]) {
      #ifndef HAVE_DELAYED_RECOVERY
                              int lost = id - data[idx] - 1;
                              /* we might have lost precreated objects due to VBR */
                              if (lost > 0 && obd->obd_recovering) {
                                      CDEBUG(D_HA, "GAP in objids is %u\n", lost);
                                      if (!obd->obd_version_recov)
                                              CWARN("Unexpected gap in objids\n");
                                      /* lsm is allocated if NULL */
                                      mds_log_lost_precreated(obd, &lsm, &stripes,
                                                              data[idx] + 1, lost, i);
                              }
      #endif
                              data[idx] = id;
                              cfs_bitmap_set(mds->mds_lov_page_dirty, page);
                      }
              }
      

      Which is not quite right, because we can't guarantee the object id is always increased in transno order, and if the lov_objid file was removed by administrator (to fix the corrupted lov_objid file), many objects could be deleted mistakenly then.

      Attachments

        Activity

          People

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

            Dates

              Created:
              Updated:
              Resolved: