Chris Lu
cda43f1976
filer: do not 404 a TUS session on a transient chunk-load failure ( #11153 )
...
* filer: do not 404 a TUS session on a transient chunk-load failure
readTusSessionInfo already proved the session exists before
loadTusSessionChunks is called, so a failure there is a read failure,
not evidence the session is gone: a volume-server timeout or a
canceled request context surfaces through ListDirectoryEntries the
same way a missing session would.
Every such error was mapped to writeTusSessionNotFound, answering 404
to HEAD/PATCH and 204 to DELETE. A spec-compliant TUS client trusts
that and discards the session, orphaning every chunk it had committed
until the 24h expiry sweep, or forever if it never issues a DELETE.
Only an error matching filer_pb.ErrNotFound is now reported as not
found; anything else answers 500 so the client retries against the
same session instead of abandoning it.
* test: cover a TUS session's transient chunk-load failure
Adds a listErr hook to the in-memory test store, alongside the
existing commitErr/deleteErr, to simulate a store or RPC failure from
ListDirectoryEntries.
HEAD, PATCH and DELETE against a live session all answer with a
server error instead of a not-found status when the chunk listing
fails transiently, and the session is left on disk untouched. A
listing failure that genuinely means not found, filer_pb.ErrNotFound,
still answers 404 (204 for DELETE).
2026-09-04 16:39:24 -07:00
..
2025-11-04 13:02:22 -08:00
2026-05-06 19:14:36 -07:00
2026-03-18 13:20:55 -07:00
2026-06-24 20:05:43 -07:00
2026-01-03 22:45:48 -08:00
2026-09-04 00:02:33 -07:00
2026-09-04 00:02:33 -07:00
2026-08-27 22:27:45 -07:00
2026-09-03 14:52:05 -07:00
2026-09-03 14:52:05 -07:00
2026-08-04 11:38:38 -07:00
2026-08-04 11:38:38 -07:00
2026-07-21 00:19:15 -07:00
2026-08-04 11:38:38 -07:00
2026-09-02 19:56:11 -07:00
2026-03-30 23:29:56 -07:00
2026-03-30 23:29:56 -07:00
2026-01-07 13:06:08 -08:00
2026-04-21 23:00:11 -07:00
2026-04-21 23:00:11 -07:00
2026-08-04 11:38:38 -07:00
2026-08-05 23:55:20 -07:00
2026-08-04 11:38:38 -07:00
2026-05-25 13:14:05 -07:00
2026-08-04 11:38:38 -07:00
2026-08-12 23:00:10 -07:00
2026-09-04 16:39:24 -07:00
2026-09-02 17:43:46 -07:00
2026-09-02 19:40:53 -07:00
2026-09-02 19:56:11 -07:00
2026-07-27 14:28:29 -07:00
2026-04-21 11:25:09 -07:00
2026-04-21 11:25:09 -07:00
2026-04-21 11:25:09 -07:00
2026-04-21 11:25:09 -07:00
2026-08-19 18:38:46 -07:00
2026-06-10 13:08:34 -07:00
2026-06-10 13:08:34 -07:00
2026-08-19 18:38:46 -07:00
2026-08-21 15:22:05 -07:00
2026-06-14 21:44:10 -07:00
2026-03-29 14:18:24 -07:00
2026-08-04 11:38:38 -07:00
2026-06-03 10:28:42 -07:00
2026-09-02 19:56:11 -07:00
2026-06-11 21:56:16 -07:00
2026-08-02 00:06:22 -07:00
2026-03-23 18:35:15 -07:00
2026-09-02 17:43:46 -07:00
2026-05-15 13:15:20 -07:00
2026-05-15 13:15:20 -07:00
2026-07-30 12:23:12 -07:00
2026-07-25 19:54:41 -07:00
2026-01-07 13:06:08 -08:00
2026-09-02 17:43:46 -07:00
2026-05-23 21:40:41 -07:00
2026-07-31 00:34:22 -07:00
2026-09-02 17:43:46 -07:00
2026-08-25 09:24:51 -07:00
2026-09-04 00:02:33 -07:00
2026-07-11 22:45:28 -07:00
2026-02-20 18:42:00 -08:00
2026-09-04 00:02:33 -07:00
2026-08-26 08:49:25 -07:00
2026-08-10 12:32:45 -07:00
2026-09-04 16:39:24 -07:00
2026-08-07 21:56:15 -07:00
2026-08-10 12:32:45 -07:00
2026-08-25 09:24:51 -07:00
2026-08-26 08:49:25 -07:00
2026-09-04 16:39:24 -07:00
2026-08-25 09:24:51 -07:00
2026-08-21 15:22:05 -07:00
2026-08-13 13:25:52 -07:00
2026-05-21 10:19:59 -07:00
2026-07-17 12:30:42 -07:00
2026-08-31 21:29:27 -07:00
2026-08-31 21:29:27 -07:00
2026-09-02 16:12:46 -07:00
2026-09-02 16:12:46 -07:00
2026-01-07 13:06:08 -08:00
2026-08-28 16:32:30 -07:00
2026-08-28 16:32:30 -07:00
2026-08-07 23:36:28 -07:00
2026-08-08 09:14:57 -07:00
2025-12-19 00:15:39 -08:00
2026-08-21 15:22:22 -07:00
2026-08-26 00:12:56 -07:00
2026-08-23 11:36:00 -07:00
2026-09-02 16:12:46 -07:00
2026-09-03 14:52:05 -07:00
2026-09-03 14:52:05 -07:00
2026-09-03 23:50:12 -07:00
2026-08-28 16:32:30 -07:00
2026-09-02 16:12:46 -07:00
2025-11-26 08:01:19 -08:00
2026-09-02 16:12:46 -07:00
2026-08-31 11:36:23 -07:00
2026-03-18 23:28:07 -07:00
2026-08-21 15:22:22 -07:00
2026-08-23 11:10:20 -07:00
2026-08-21 15:22:22 -07:00
2026-08-23 11:10:20 -07:00
2026-07-25 23:53:29 -07:00
2026-09-03 14:52:05 -07:00
2026-09-03 18:39:45 -07:00
2026-09-01 10:37:25 -07:00
2026-05-11 13:50:48 -07:00
2026-09-01 10:37:25 -07:00
2026-06-26 14:22:57 -07:00
2026-08-07 23:36:28 -07:00
2022-07-29 00:17:28 -07:00
2026-08-08 09:25:57 -07:00
2026-06-13 20:05:33 -07:00
2026-05-31 23:42:33 -07:00
2026-08-08 09:25:57 -07:00
2026-06-14 01:54:04 -07:00
2026-07-10 22:06:36 -07:00
2026-08-28 20:46:59 -07:00
2026-08-28 20:46:59 -07:00
2026-06-25 10:38:14 -07:00
2026-07-10 22:06:36 -07:00
2026-09-03 18:39:45 -07:00
2026-09-03 18:39:45 -07:00
2026-07-15 23:24:04 -07:00
2026-05-11 13:50:19 -07:00
2026-04-22 11:22:21 -07:00
2026-08-27 16:25:56 -07:00
2026-08-27 16:25:56 -07:00
2026-08-28 16:42:34 -07:00
2026-07-25 23:53:29 -07:00
2026-07-25 23:53:29 -07:00
2026-07-25 23:53:29 -07:00
2026-08-31 21:41:50 -07:00
2026-07-25 23:53:29 -07:00
2026-07-25 23:53:29 -07:00
2026-05-04 21:14:55 -07:00
2026-04-03 16:04:27 -07:00
2026-08-23 08:20:25 -07:00
2026-08-23 11:13:36 -07:00
2026-04-27 12:22:42 -07:00
2026-08-09 12:43:31 -07:00
2026-09-01 10:37:25 -07:00
2026-06-04 22:26:08 -07:00
2026-07-15 23:24:04 -07:00
2026-06-04 22:26:08 -07:00
2026-07-30 11:58:14 -07:00
2026-07-30 11:58:14 -07:00
2026-08-27 16:21:14 -07:00
2026-08-27 16:21:14 -07:00
2026-06-11 21:56:16 -07:00
2026-08-27 16:21:14 -07:00