
Robert Vind-GardoșandPR #6166 Reviewer
0c56527d12
fix(email): preserve mail when bulk Trash moves fail (#6633)
* fix(email): preserve mail when bulk Trash moves fail
* fix(email): selective UID EXPUNGE and safe bulk delete cache invalidation
* fix(email): eliminate mailbox-wide EXPUNGE TOCTOU race
- Strictly prohibit mailbox-wide EXPUNGE in bulk email deletion fallback
- Restrict cleanup exclusively to selective RFC 4315 UID EXPUNGE <set>
- Track and preserve pre-existing \Deleted flags if selective expunge fails
- Retain local index records and preserve source emails when cleanup fails
- Ensure consistent partial-failure error semantics across all failure modes
- Add comprehensive hermetic tests for concurrent clients, missing UIDPLUS,
disconnects after COPY/STORE/EXPUNGE, and retry safety
---------
Co-authored-by: PR #6166 Reviewer <reviewer@odysseus-review.local>
2026-10-14 09:01:42 +01:00
..
2026-07-21 12:39:27 +02:00
2026-07-21 12:38:32 +02:00
2026-07-21 12:40:09 +02:00
2026-09-11 06:04:19 +00:00
2026-10-01 19:45:59 +02:00
2026-10-14 09:01:42 +01:00
2026-10-01 19:45:59 +02:00
2026-10-14 08:41:38 +01:00
2026-09-30 12:54:09 +02:00
2026-10-13 21:02:16 +01:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-10-06 03:16:54 +01:00
2026-10-06 03:16:54 +01:00
2026-10-02 03:00:46 +01:00
2026-08-03 20:44:31 +02:00
2026-05-31 23:58:26 +09:00
2026-06-11 00:43:49 +02:00
2026-07-21 12:39:27 +02:00
2026-06-15 18:05:15 +01:00
2026-10-05 22:24:15 +01:00
2026-10-01 01:34:26 +00:00
2026-08-06 02:33:50 -06:00
2026-10-06 03:16:54 +01:00
2026-10-13 21:02:16 +01:00
2026-10-13 18:57:19 +01:00
2026-09-22 13:12:19 +01:00
2026-07-21 12:38:32 +02:00
2026-10-02 23:39:13 +01:00
2026-07-21 12:40:09 +02:00
2026-07-07 00:51:34 +00:00
2026-09-11 06:04:19 +00:00
2026-06-15 15:26:55 +09:00
2026-10-02 23:39:13 +01:00
2026-06-08 10:19:18 +02:00
2026-06-08 10:19:18 +02:00
2026-06-15 10:32:51 +02:00
2026-08-04 03:54:55 -06:00
2026-08-04 03:54:55 -06:00
2026-09-23 12:53:06 +01:00
2026-10-01 01:34:26 +00:00
2026-09-29 18:21:18 +02:00
2026-10-01 01:34:26 +00:00
2026-06-15 17:44:10 +01:00
2026-06-08 09:58:52 +02:00
2026-06-03 14:24:30 +09:00
2026-06-28 14:07:23 +00:00
2026-06-28 14:07:23 +00:00
2026-07-04 13:36:35 +02:00
2026-10-06 03:16:54 +01:00
2026-08-11 02:24:55 -06:00
2026-06-30 17:52:14 +02:00
2026-10-01 01:34:26 +00:00
2026-07-20 13:52:30 +02:00
2026-10-01 19:45:59 +02:00
2026-08-14 08:10:30 +01:00
2026-09-11 06:04:19 +00:00
2026-06-28 14:34:11 +01:00
2026-07-28 22:26:29 +02:00
2026-10-13 21:02:16 +01:00
2026-10-02 23:15:51 +01:00
2026-06-05 13:17:43 +02:00
2026-10-13 21:02:16 +01:00
2026-06-09 01:24:30 +02:00
2026-08-17 10:07:17 +08:00
2026-05-31 23:58:26 +09:00
2026-10-01 19:45:59 +02:00
2026-08-03 20:44:00 +02:00
2026-08-03 20:44:31 +02:00
2026-09-11 06:04:19 +00:00