Chris Lu and GitHub
60893c5ef3
Classify a filer error before a user-controlled path is wrapped into it ( #11004 )
...
* util, pb: classify a filer error by the status the server sent
DoSeaweedListWithSnapshot wrapped a failed ListEntries with %v, dropping the
gRPC status, so IsTransientError fell back to matching substrings against a
message that now held the caller's path. Keep the status with %w and let it
decide, reading the server's own text rather than the wrapper's.
Claude-Session: https://claude.ai/code/session_01BjDWtZsCoZY6x4pdDmGWxU
* s3: keep the bucket and prefix out of the list retry decision
A bucket named transport, or a prefix under logs/unavailable/, made a
PermissionDenied listing look transient and got it retried; a key holding the
not-found sentence suppressed a retry that should have run. Both checks now
read the filer's status, and only fall back to the text when there is none.
Claude-Session: https://claude.ai/code/session_01BjDWtZsCoZY6x4pdDmGWxU
* filer, s3: classify a delete failure before the path is wrapped into it
The filer put the non-empty-folder marker behind its own "delete directory %s"
wrapper and the gateway matched it as a substring, so a key named after the
marker turned a real delete failure into the demote-the-marker no-op and the
request answered 204. Keep the marker leading the message that crosses the
wire, turn it back into a sentinel where the response is read, and match that.
Claude-Session: https://claude.ai/code/session_01BjDWtZsCoZY6x4pdDmGWxU
2026-08-27 22:30:53 -07:00
..
2026-08-27 22:27:45 -07:00
2026-08-27 22:27:45 -07:00
2026-08-27 22:27:45 -07:00
2026-01-07 13:06:08 -08:00
2026-08-27 22:27:45 -07:00
2026-08-27 22:27:45 -07:00
2026-08-27 22:27:45 -07:00
2026-07-17 12:30:42 -07:00
2026-07-17 12:30:42 -07:00
2026-08-27 22:27:45 -07:00
2026-04-21 20:17:42 -07:00
2026-08-27 22:27:45 -07:00
2026-08-13 13:22:58 -07:00
2026-08-14 13:54:12 -07:00
2026-08-25 18:03:52 -07:00
2026-08-27 22:27:45 -07:00
2026-08-27 22:27:45 -07:00
2026-08-25 18:03:52 -07:00
2026-08-14 13:54:12 -07:00
2026-08-14 13:54:12 -07:00
2026-08-14 13:54:12 -07:00
2025-10-24 20:21:35 -07:00
2025-10-24 20:21:35 -07:00
2026-07-31 00:34:22 -07:00
2026-04-17 21:09:36 -07:00
2026-08-13 13:22:58 -07:00
2025-10-24 20:21:35 -07:00
2026-01-07 13:06:08 -08:00
2025-10-24 20:21:35 -07:00
2026-08-10 16:31:26 -07:00
2026-08-27 22:27:45 -07:00
2025-10-24 20:21:35 -07:00
2026-04-28 12:30:13 -07:00
2026-04-28 12:30:13 -07:00
2026-01-14 21:37:50 -08:00
2026-07-23 17:44:02 -07:00
2025-10-24 20:21:35 -07:00
2026-06-08 23:42:13 -07:00
2026-06-08 23:42:13 -07:00
2025-10-24 20:21:35 -07:00
2025-10-24 20:21:35 -07:00
2025-10-24 20:21:35 -07:00
2026-06-19 09:09:01 -07:00
2026-07-17 12:30:42 -07:00
2025-10-17 22:11:50 -07:00
2026-01-07 13:06:08 -08:00
2025-10-13 18:05:17 -07:00
2026-05-12 12:37:09 -07:00
2026-01-07 13:06:08 -08:00
2026-01-07 13:06:08 -08:00
2025-09-09 01:01:03 -07:00
2026-08-27 22:29:48 -07:00
2026-08-27 22:29:48 -07:00
2026-07-04 10:50:32 -07:00
2026-07-04 10:50:32 -07:00
2026-08-27 22:29:48 -07:00
2026-07-15 19:20:00 -07:00
2026-07-15 19:20:00 -07:00
2026-02-05 12:57:27 -08:00
2026-07-22 14:38:06 -07:00
2026-08-18 15:38:02 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-03-25 23:09:53 -07:00
2026-05-18 13:42:32 -07:00
2026-01-27 10:50:16 -08:00
2026-08-27 22:27:45 -07:00
2026-06-06 11:20:15 -07:00
2026-07-08 14:32:04 -07:00
2026-01-27 10:50:16 -08:00
2026-08-04 16:00:04 -07:00
2026-07-03 12:39:45 -07:00
2026-07-10 22:09:39 -07:00
2026-02-26 11:56:10 -08:00
2026-05-07 17:45:04 -07:00
2025-07-16 23:39:27 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-06-24 19:36:42 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-12 18:29:18 -07:00
2026-08-13 13:22:58 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-07-08 18:50:54 -07:00
2026-08-19 22:59:56 -07:00
2026-01-30 22:57:05 -08:00
2026-04-28 12:30:13 -07:00
2026-01-30 22:57:05 -08:00
2026-03-03 15:10:40 -08:00
2026-08-13 19:11:38 -07:00
2026-08-25 18:03:52 -07:00
2026-07-12 00:14:16 -07:00
2026-07-12 00:14:16 -07:00
2026-08-25 18:03:52 -07:00
2026-08-12 12:29:40 -07:00
2026-08-25 18:03:52 -07:00
2026-08-25 18:03:52 -07:00
2026-08-10 11:10:29 -07:00
2026-08-25 18:03:52 -07:00
2026-08-25 18:03:52 -07:00
2026-07-21 12:43:38 -07:00
2026-08-25 18:03:52 -07:00
2026-08-27 16:44:19 -07:00
2026-08-27 22:30:53 -07:00
2026-08-27 22:27:45 -07:00
2026-08-25 18:03:52 -07:00
2026-08-25 18:03:52 -07:00
2026-06-23 11:27:43 -07:00
2026-08-10 16:31:26 -07:00
2026-08-04 16:58:25 -07:00
2026-08-12 12:29:40 -07:00
2026-01-07 13:06:08 -08:00
2026-08-13 13:22:58 -07:00
2026-06-10 13:29:07 -07:00
2026-08-14 13:54:12 -07:00
2025-11-09 19:58:38 -08:00
2026-07-22 14:38:06 -07:00
2026-03-20 23:52:12 -07:00
2026-08-25 18:03:52 -07:00
2026-08-25 18:03:52 -07:00
2026-06-11 10:46:34 -07:00
2026-08-25 18:03:52 -07:00
2026-07-11 13:49:36 -07:00
2026-08-13 13:22:58 -07:00
2026-01-07 13:06:08 -08:00
2026-08-27 22:27:45 -07:00
2026-08-27 22:27:45 -07:00
2026-08-27 22:27:45 -07:00
2026-04-07 14:10:15 -07:00
2026-08-27 22:27:45 -07:00
2026-08-14 13:54:12 -07:00
2026-08-25 18:03:52 -07:00
2026-06-14 13:55:36 -07:00
2026-08-27 22:27:45 -07:00
2025-12-15 11:18:45 -08:00
2025-12-15 11:18:45 -08:00
2025-12-15 11:18:45 -08:00