ssshr-66 and Chris Lu
cd1e738422
[Volume] Scrub local deletion tombstones during FULL scrub ( #11396 )
...
* fix 11388
* fix(volume): scrub validates local deletion tombstones
TombstoneFileSize (-1) is an .idx-only sentinel; the physical record it
points at carries a zero-sized body. Normalize deleted index sizes to 0
via onDiskSize before computing disk usage and calling ReadData, so
corrupted or truncated tombstone records are detected instead of
skipped. Offset-zero entries (remote logical deletes, no .dat record)
remain skipped, and the physical needle id is checked against the index
key. Mirror the behavior in the Rust volume server.
* fix(volume): scrub preserves physical size of deleted non-tombstone entries
Size.Raw()/raw() already encodes the index-to-disk mapping: tombstone
(-1) -> 0, other negative sizes -> their absolute value (the offset then
points at the original record, per the ReadDeleted path). Use it instead
of mapping every deleted size to 0.
---------
Co-authored-by: Chris Lu <chris.lu@gmail.com >
2026-09-19 18:55:27 -07:00
..
2026-09-14 22:09:08 -07:00
2026-09-12 14:19:18 -07:00
2026-06-30 02:01:14 -07:00
2026-09-19 12:20:01 -07:00
2026-07-22 14:38:06 -07:00
2026-08-07 00:53:02 -07:00
2026-05-21 09:42:07 -07:00
2026-08-27 10:01:05 -07:00
2026-09-07 18:40:37 -07:00
2026-05-21 02:16:28 -07:00
2026-08-27 22:25:15 -07:00
2026-08-27 22:25:15 -07:00
2026-05-31 18:52:44 -07:00
2026-04-27 16:01:10 -07:00
2026-08-29 14:19:16 -07:00
2026-08-29 14:19:16 -07:00
2026-08-27 22:25:15 -07:00
2026-09-03 08:43:10 -07:00
2026-09-09 12:55:47 -07:00
2026-06-12 23:51:29 -07:00
2026-09-08 21:42:56 -07:00
2026-09-08 21:42:56 -07:00
2026-09-08 21:42:56 -07:00
2026-09-07 18:40:37 -07:00
2026-08-31 21:41:50 -07:00
2026-08-04 13:33:31 -07:00
2026-08-08 06:00:46 -07:00
2026-04-16 22:01:34 -07:00
2026-04-16 22:01:34 -07:00
2026-04-16 22:01:34 -07:00
2026-05-13 10:22:01 -07:00
2026-08-25 10:23:00 -07:00
2026-04-16 22:01:34 -07:00
2026-09-14 22:09:08 -07:00
2026-08-21 22:33:01 -07:00
2026-09-09 12:55:47 -07:00
2026-08-08 20:23:10 -07:00
2026-09-03 14:52:05 -07:00
2026-06-02 09:02:05 -07:00
2026-06-14 06:36:47 -07:00
2026-06-02 09:02:05 -07:00
2026-08-28 20:46:59 -07:00
2026-06-10 13:33:45 -07:00
2026-06-12 23:51:29 -07:00
2026-08-28 20:46:59 -07:00
2026-08-28 15:43:05 -07:00
2026-06-02 09:02:05 -07:00
2026-05-17 19:55:15 -07:00
2026-06-02 09:02:05 -07:00
2026-08-12 20:18:39 -07:00
2026-06-02 09:02:05 -07:00
2026-06-11 20:26:20 -07:00
2026-08-27 22:25:15 -07:00
2026-08-28 15:55:12 -07:00
2026-08-28 20:46:59 -07:00
2026-06-25 10:38:14 -07:00
2026-06-25 10:38:14 -07:00
2026-01-23 16:38:36 -08:00
2026-08-28 20:46:59 -07:00
2026-09-12 14:19:18 -07:00
2026-08-29 12:12:41 -07:00
2026-09-08 21:42:56 -07:00
2026-08-21 22:33:01 -07:00
2026-09-03 23:50:12 -07:00
2025-10-20 16:11:29 -07:00
2026-08-21 13:04:56 -07:00
2026-09-09 12:55:47 -07:00
2026-06-02 09:02:05 -07:00
2026-09-09 23:33:05 -07:00
2026-04-03 16:04:27 -07:00
2026-08-18 17:17:50 -07:00
2025-06-30 13:57:28 -07:00
2026-08-18 17:17:50 -07:00
2026-08-27 22:25:15 -07:00
2026-08-27 22:25:15 -07:00
2026-09-09 23:33:05 -07:00
2026-08-21 13:04:56 -07:00
2019-04-17 22:04:49 -07:00
2025-06-16 22:05:06 -07:00
2026-09-19 18:55:27 -07:00
2026-09-19 18:55:27 -07:00
2026-08-18 17:17:50 -07:00
2026-09-03 08:43:10 -07:00
2026-09-03 08:43:10 -07:00
2026-08-18 17:17:50 -07:00
2026-07-28 16:48:30 -07:00
2026-08-11 16:36:36 -07:00
2026-08-09 12:43:31 -07:00
2026-08-09 09:41:50 -07:00
2026-08-10 00:40:29 -07:00
2026-09-07 09:23:56 -07:00
2026-08-13 21:38:22 -07:00
2026-09-07 18:40:37 -07:00
2026-09-04 23:48:40 -07:00
2026-09-07 18:40:37 -07:00
2022-11-23 15:59:38 -08:00
2026-08-18 17:17:50 -07:00
2026-09-17 19:58:49 -07:00
2026-09-07 09:23:56 -07:00
2026-07-30 17:03:38 -07:00
2026-08-31 21:41:50 -07:00
2026-08-27 22:25:15 -07:00
2026-09-04 23:48:40 -07:00
2026-09-04 23:48:40 -07:00
2026-08-18 17:17:50 -07:00
2026-09-18 23:00:06 -07:00
2026-09-13 00:05:30 -07:00
2026-08-18 17:17:50 -07:00
2026-09-07 18:40:37 -07:00
2026-09-08 21:42:56 -07:00
2026-09-08 21:42:56 -07:00