Files
seaweedfs/weed/mount/meta_cache
Chris Lu 6a5f1b66b4 mount: cover buffered build events in the cursor, barrier via the failover client
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.
2026-07-22 16:11:00 -07:00
..
2022-02-14 01:09:31 -08:00