filer: retry deletes a low-disk replica could not record

A low-disk volume now counts as deletable, but appending the tombstone
can still fail with no space left on device. Treat that as retryable so
the deletion stays queued instead of being dropped after the other
replicas applied it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Chris LuandClaude Opus 5.5 committed 2026-11-02 05:13:58 -08:00
1 parent 504230ce1e
commit c446ea309b
2 files changed
+3

No files matched your search

+1
View File
@@ -64,6 +64,7 @@ var retryablePatterns = []string{
"too many requests", // Rate limiting / backpressure
"try again", // Explicit retry suggestion
"replication copy count", // A replica is offline; deletes wait for it to return
"no space left on device", // A low-disk replica could not append the tombstone yet
}
// DeletionRetryItem represents a file deletion that failed and needs to be retried
+2
View File
@@ -185,6 +185,8 @@ func TestIsRetryableError(t *testing.T) {
{"i/o timeout", true, "I/O timeout"},
{"broken pipe", true, "broken pipe"},
{"replication locations [1] is less than volume 9 replication copy count [2]", true, "replica offline"},
{"write /data/9.dat: no space left on device", true, "disk full"},
{"No space left on device (os error 28)", true, "disk full (rust)"},
{"not found", false, "not found (not retryable)"},
{"invalid file id", false, "invalid input (not retryable)"},
{"", false, "empty error"},