Charlie Marsh
483559cc75
Coalesce concurrent remote metadata requests ( #36184 )
...
## Why
Concurrent callers can request metadata for the same remote path, resulting in duplicate `fs/getMetadata` RPCs.
## What changed
- Share an unsandboxed metadata request with concurrent callers for the same path while the RPC is in flight.
- Remove completed and failed requests so later callers fetch fresh metadata, and clear in-flight entries after filesystem mutations, including failed mutations.
- Keep requests for different paths separate and bypass sharing for sandboxed requests.
## Testing
Add WebSocket-backed tests covering shared results and errors, retry after cancellation or failure, mutation invalidation, and path and sandbox isolation.
GitOrigin-RevId: f91e51b94db3fb984597aec8d302b8715778121c
2026-07-30 16:35:20 +00:00
..
2026-07-29 13:53:15 +00:00
2026-07-23 19:19:35 +00:00
2026-07-21 22:44:43 +00:00
2026-07-30 05:53:21 +00:00
2026-07-29 13:53:15 +00:00
2026-07-30 14:15:39 +00:00
2026-07-29 00:30:11 +00:00
2026-07-21 08:50:21 +00:00
2026-07-30 01:37:41 +00:00
2026-07-28 05:26:16 +00:00
2026-07-29 18:29:26 +00:00
2026-07-22 02:19:45 +00:00
2026-07-21 08:59:41 +00:00
2026-07-28 15:50:45 +00:00
2026-07-23 01:00:35 +00:00
2026-07-30 01:20:28 +00:00
2026-07-28 15:50:45 +00:00
2026-07-29 14:01:31 +00:00
2026-07-21 08:28:51 +00:00
2026-07-25 00:01:43 +00:00
2026-07-24 04:37:01 +00:00
2026-07-24 04:37:01 +00:00
2026-07-28 21:16:06 +00:00
2026-07-28 15:50:45 +00:00
2026-07-29 23:46:54 +00:00
2026-07-27 18:41:09 +00:00
2026-07-23 01:00:35 +00:00
2026-07-26 23:36:33 +00:00
2026-07-30 16:30:32 +00:00
2026-07-24 06:03:36 +00:00
2026-07-29 01:16:29 +00:00
2026-07-30 10:01:06 +00:00
2026-07-30 01:37:41 +00:00
2026-07-30 16:35:20 +00:00
2026-07-30 10:01:06 +00:00
2026-07-20 06:13:29 +00:00
2026-07-30 10:01:06 +00:00
2026-07-30 00:50:02 +00:00
2026-07-30 16:22:43 +00:00
2026-07-28 17:51:37 +00:00
2026-07-23 23:35:29 +00:00
2026-07-22 02:19:45 +00:00
2026-07-27 18:07:31 +00:00
2026-07-28 19:58:25 +00:00
2026-07-27 18:07:31 +00:00
2026-07-22 04:17:34 +00:00
2026-07-28 15:50:45 +00:00
2026-07-28 21:58:33 +00:00
2026-07-30 11:52:38 +00:00
2026-07-17 20:52:42 +00:00
2026-07-23 19:32:26 +00:00
2026-07-23 00:02:15 +00:00
2026-07-28 13:31:41 +00:00
2026-07-27 18:07:31 +00:00
2026-07-30 04:26:36 +00:00
2026-07-29 23:58:10 +00:00
2026-07-24 23:36:11 +00:00
2026-07-22 19:14:11 +00:00
2026-07-30 01:37:41 +00:00
2026-07-29 23:24:43 +00:00
2026-07-29 18:29:26 +00:00
2026-07-23 23:13:59 +00:00
2026-07-30 16:30:32 +00:00
2026-07-23 21:50:17 +00:00
2026-07-29 19:49:01 +00:00
2026-07-29 18:37:22 +00:00
2026-07-24 00:10:22 +00:00
2026-07-30 04:55:09 +00:00
2026-07-30 09:19:14 +00:00
2026-07-30 01:37:41 +00:00
2026-07-30 04:26:36 +00:00
2026-07-22 16:18:08 +00:00
2026-07-24 00:16:42 +00:00
2026-07-27 18:37:11 +00:00
2026-07-30 04:26:36 +00:00
2026-07-29 17:38:20 +00:00
2026-07-28 20:49:22 +00:00
2026-07-29 13:53:15 +00:00
2026-07-30 04:26:36 +00:00