mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2026-09-20 13:30:46 +02:00
A buffered build event only reached the cursor through its store write, which never happens on build abort and is skipped for snapshot-covered events at completion — while its invalidation stays queued. An open in that window fenced below the event, so the queued invalidation replaced the newer looked-up state. Advance the cursor when the event is buffered, before its invalidation is observable. This is sound without the store write: the building directory is read-through, so opens there consult the filer, which is at least as new; immediate rename fragments are applied first so their store writes are not outrun. The remote-cache barrier pinged the current-filer index from inside the WithFilerClient callback. During failover the callback retries against another filer while the index still points at the failed one, so the ping failed and the barrier silently degraded to the delivered-event cursor, reopening the undelivered-event rollback. Ping through the callback's own client instead; the server-side copy keeps the current-filer barrier since it posts to that filer over HTTP.