Details
-
Improvement
-
Resolution: Unresolved
-
Medium
-
Lustre 2.17.0
-
None
-
3
-
9223372036854775807
Description
Currently, fsync operations do not acquire layout locks because:
- fsync only flushes already-mapped pages to disk.
- The mapping from file offsets to OST objects occurs during write operations.
- Layout changes should only affect new writes, not existing cached data.
- Acquiring layout locks during fsync can cause deadlocks when fsync is called from within write operations (see EX-12989).
However, as noted by green, this assumption may not hold in the future. When more advanced features such as smart mirroring or on-the-fly restriping (e.g., when an OST runs out of space) are introduced, fsync may need to interact with layout locks differently.
Running fsync concurrently with layout-changing operations could lead to data consistency issues or race conditions.
Attachments
Issue Links
- is related to
-
LU-19556 fsync() does not need to wait for layout flush
-
- Resolved
-