Details
-
Bug
-
Resolution: Fixed
-
Critical
-
Lustre 2.10.0, Lustre 2.11.0
-
None
-
3
-
9223372036854775807
Description
Under some situations lock revoke may not take effect, suppose a concurrent setattr on a striped directory and rename under this directory:
1. setattr takes UPDATE lock of directory, but not unlock it yet (i.e., this lock is not downgraded to COS lock).
2. a concurrent 'mv' under this directory will first getattr file by name, this getattr will revoke UPDATE lock of this directory, since this getattr is not a distributed operation, this revoke does nothing.
3. setattr unlocks this UPDATE lock and downgrade it to COS mode, which notifies getattr that its lock is granted.
4. rename tries to lock UPDATE lock of this directory, but this lock was revoked before (though nothing did), it won't revoke again, rename will wait until setattr transaction commit.