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

Nodemap fileset removal declares 256 index deletes per fileset

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Medium Medium
    • None
    • Lustre 2.18.0
    • 3
    • 9223372036854775807

      Removing a nodemap fileset wipes the whole subid range reserved for that fileset instead of deleting the records the fileset actually occupies. Every fileset removal therefore declares LUSTRE_NODEMAP_FILESET_SUBID_RANGE (256) index deletes in a single transaction, whatever the length of the fileset path, and even when the nodemap has no fileset at all.

      On ldiskfs each osd_index_declare_iam_delete() charges osd_dto_credits_noquota[DTO_INDEX_DELETE] (1) + 3 = 4 credits, so one removal declares 1024 credits. When that exceeds the maximum transaction size of the journal, osd_trans_start() clamps the transaction down to jbd2_journal_get_max_txn_bufs(journal) / 2 and osd_trans_exec_op() reports the mismatch:

        lustre-MDT0000: opcode 9: before 516 < left 1024, rollback = 8
          create: 0/0/0, destroy: 0/0/0
          attr_set: 0/0/0, xattr_set: 1/1/0
          write: 0/0/0, punch: 0/0/0, quota 1/3/0
          insert: 0/0/0, delete: 256/1024/0
          ref_add: 0/0/0, ref_del: 0/0/0
      

            sebastien Sebastien Buisson
            sebastien Sebastien Buisson
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: