mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2026-09-20 13:30:46 +02:00
An event applied while the open's lookup was in flight could already be reflected in the returned entry while sitting above the pre-lookup cursor, so the fence under-covered and the queued invalidation replaced the fresher entry. The open now re-reads until the cursor is stable across the lookup; on sustained churn the last pre-lookup value stands, which can only under-fence, never block a newer event. A pre-RPC ping likewise cannot vouch for events committed during the RPC itself. CacheRemoteObjectToLocalCluster now returns a log timestamp stamped before the filer reads the entry — events are logged after their store write on that same clock, so everything at or below it is reflected in the returned entry, making the fence causal with the response. The mount prefers the response event's timestamp, then this log timestamp, and keeps the pre-RPC ping only for filers that return neither.