mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2026-09-20 13:30:46 +02:00
An event touching a directory mid-build is buffered — its store write waits for build completion — while its invalidation runs immediately. That refresh resolves against the store, which can still hold the older listing snapshot, pinning the handle to pre-event state with no later refresh. Replay buffered events with entry invalidation enabled: by then the store is ordered, so the re-invalidation lands the final state. Events the snapshot filter skips need no re-invalidation since the listing state is at least as new. Also correct the resolution comment: the store misses for TTL-expired entries too, and on a read-through miss the event-entry fallback can still roll back a racing local flush, since neither write reaches the store there.