-
Bug
-
Resolution: Unresolved
-
Medium
-
None
-
Upstream
-
3
-
9223372036854775807
https://review.whamcloud.com/c/fs/lustre-release/+/68709
mdt_migrate_close() is only called from mdt_reint_migrate() on the
success path (after the source open_sem has been taken). If the
migration later fails - e.g. the directory is already being migrated
and the source lookup returns -EALREADY, or mdo_migrate() errors out -
the server-side close of the file that carries the lease is skipped
altogether.
The client considers the migrate close done and has already canceled
its lease lock, so the server-side lease is never revoked either.
As a result the file stays open on the MDT and its locks are only
cleaned up on reclaim, keeping the file busy (e.g. for HSM release or
future migration) and leaking the server-side lock until then.