Dmitriy Kovalenko
adfcac1a42
Serialize session index mutations across processes ( #57358 )
...
## Why
The process-local mutex cannot coordinate session name appends and removals from multiple Codex processes sharing the same home directory.
## What changed
- Guard index mutations with a persistent `session_index.jsonl.lock` file, retaining the lock until the blocking worker finishes even if its caller is cancelled.
- Return a timeout error after 30 seconds of lock contention without modifying the index.
- Rewrite removals through a unique temporary file while preserving index permissions, and skip removal when the index is absent.
## Testing
Update regression tests to check lock retention after cancellation, timeout without writing, successful writes after contention clears, and removal with a missing home directory. Retain coverage for cancelled queued updates preserving the next write.
GitOrigin-RevId: 5231c9ff85c6b34de5ee92931d119b6f46bd583b
2026-10-27 04:47:37 +00:00
..
2026-10-26 21:07:09 +00:00
2026-10-14 07:13:22 +00:00
2026-10-20 21:28:45 +00:00
2026-10-23 14:59:40 +00:00
2026-10-26 19:35:31 +00:00
2026-10-27 00:23:39 +00:00
2026-10-26 20:02:45 +00:00
2026-10-26 21:05:47 +00:00
2026-10-26 22:05:00 +00:00
2026-10-26 18:13:00 +00:00
2026-10-26 20:02:45 +00:00
2026-10-12 11:24:22 +00:00
2026-10-26 20:26:32 +00:00
2026-10-15 19:51:22 +00:00
2026-10-22 19:36:47 +00:00
2026-10-26 18:06:07 +00:00
2026-10-26 21:08:15 +00:00
2026-10-27 04:46:24 +00:00
2026-10-26 18:06:07 +00:00
2026-10-26 18:14:57 +00:00
2026-10-20 15:43:19 +00:00
2026-10-26 21:36:35 +00:00
2026-10-26 21:36:35 +00:00
2026-10-26 21:36:35 +00:00
2026-10-26 21:36:35 +00:00
2026-10-26 18:22:11 +00:00
2026-10-19 21:43:19 +00:00
2026-10-26 19:37:32 +00:00
2026-10-26 22:05:00 +00:00
2026-10-26 21:08:15 +00:00
2026-10-26 21:55:00 +00:00
2026-10-27 01:50:46 +00:00
2026-10-20 14:14:59 +00:00
2026-10-19 15:15:17 +00:00
2026-10-26 22:23:59 +00:00
2026-10-20 21:28:45 +00:00
2026-10-26 19:19:10 +00:00
2026-10-08 20:11:43 +00:00
2026-10-26 18:14:57 +00:00
2026-10-26 20:26:59 +00:00
2026-10-22 11:52:34 +00:00
2026-10-26 22:27:05 +00:00
2026-10-26 18:13:00 +00:00
2026-10-27 00:52:31 +00:00
2026-10-22 19:36:47 +00:00
2026-10-22 19:36:47 +00:00
2026-10-21 19:53:00 +00:00
2026-10-13 17:22:34 +00:00
2026-10-26 20:40:53 +00:00
2026-10-27 00:01:05 +00:00
2026-10-21 02:41:05 +00:00
2026-10-26 19:21:08 +00:00
2026-10-26 18:06:07 +00:00
2026-10-22 19:36:47 +00:00
2026-10-26 18:31:21 +00:00
2026-10-26 20:53:10 +00:00
2026-10-26 20:40:53 +00:00
2026-10-22 19:36:47 +00:00
2026-10-23 15:00:06 +00:00
2026-10-22 19:36:47 +00:00
2026-10-27 00:08:07 +00:00
2026-10-27 00:08:07 +00:00
2026-10-27 01:50:46 +00:00
2026-10-27 04:39:28 +00:00
2026-10-26 18:22:40 +00:00
2026-10-20 22:34:40 +00:00
2026-10-26 22:11:01 +00:00
2026-10-27 01:50:46 +00:00
2026-10-27 01:50:46 +00:00
2026-10-10 02:54:59 +00:00
2026-10-23 11:43:14 +00:00
2026-10-19 16:56:42 +00:00
2026-10-26 19:37:32 +00:00
2026-10-27 04:47:37 +00:00
2026-10-26 23:55:28 +00:00
2026-10-26 18:22:11 +00:00
2026-10-20 21:28:45 +00:00
2026-10-20 21:28:45 +00:00
2026-10-22 04:59:19 +00:00
2026-10-20 21:28:45 +00:00
2026-10-19 21:01:44 +00:00
2026-10-26 20:16:30 +00:00
2026-10-22 00:19:02 +00:00
2026-10-12 17:52:12 +00:00
2026-10-26 20:44:30 +00:00
2026-10-26 21:07:36 +00:00
2026-10-26 19:21:08 +00:00
2026-10-27 04:09:04 +00:00
2026-10-13 22:40:57 +00:00
2026-10-26 19:37:06 +00:00
2026-10-16 06:06:54 +00:00
2026-10-22 17:42:21 +00:00
2026-10-20 21:28:45 +00:00
2026-10-22 19:36:47 +00:00
2026-10-22 17:02:32 +00:00
2026-10-26 22:05:00 +00:00
2026-10-26 22:11:01 +00:00
2026-10-26 22:11:01 +00:00
2026-10-26 21:47:10 +00:00
2026-10-20 21:28:45 +00:00