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

lfs migrate -m leaves a striped directory half-migrated (stuck in migrating state)

XMLWordPrintable

    • Icon: Requirement Requirement
    • Resolution: Unresolved
    • Icon: Medium Medium
    • None
    • None
    • 3
    • 9223372036854775807

      lfs migrate -m leaves a striped directory half-migrated (stuck in migrating state) when the MDT-side finalize/layout-shrink fails — exposed by LU-19809 / sanity test_60h

      Description
      While fixing the lfs migrate exit-code propagation in LU-19809, we discovered an underlying directory-migration bug that LU-19809 only exposes, and does not fix. This ticket tracks the real fix.

      Background — what LU-19809 changed

      Before LU-19809, the userspace migrate finalize callback (cb_migrate_mdt_fini() in liblustreapi.c) swallowed the error returned by the finalize step (the close() + setxattr(XATTR_NAME_LMV) that triggers the MDT-side layout shrink). As a result lfs migrate returned exit code 0 even when the migration did not actually complete. LU-19809 makes that error propagate so lfs migrate now exits non-zero when finalize fails.

      That fix surfaced the actual defect: when the finalize step fails, the directory is left half-migrated (layout still shows migrating, e.g. crush,migrating), rather than being either fully migrated or cleanly rolled back.

      How it reproduces run sanity test_60h

            rajeevm Rajeev Mishra
            rajeevm Rajeev Mishra
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: