Chris Lu and GitHub
fbd85d31b0
ec.decode: check the rebuilt .dat is complete before the shards can be deleted ( #10768 )
...
A decode ends by deleting the shards it read, and the only thing standing
between that and a bad reconstruction is verifyDecodedVolumeBeforeDelete,
which asks whether .dat and .idx are non-empty. A .dat truncated to a
single byte passes, and the shards -- the only other copy of everything
past the cut -- are deleted on the strength of it.
The server already knows the answer it never checks: FindDatFileSize
returns the extent the EC index references, and WriteDatFile rebuilds to
it. Compare the two once the file is written and fail the decode instead
of reporting a short volume as a good one.
Longer than the extent still verifies -- padding is not missing data --
so only a genuinely short rebuild is rejected.
Needle counts cannot answer this: .idx is written from .ecx, so the count
matches by construction and a truncated .dat still reports every needle.
2026-08-15 13:28:49 -07: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-06-23 20:20:11 -07:00
2026-06-23 20:20:11 -07:00
2026-07-27 14:28:29 -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-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-08-04 11:38:38 -07:00
2026-07-23 17:44:02 -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-02 00:06:22 -07:00
2026-06-10 13:08:34 -07:00
2026-06-10 13:08:34 -07:00
2026-08-02 00:06:22 -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-08-07 12:03:18 -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-06-24 19:36:42 -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-08-12 23:00:10 -07:00
2026-05-23 21:40:41 -07:00
2026-07-31 00:34:22 -07:00
2026-04-16 15:51:13 -07:00
2026-07-25 11:20:41 -07:00
2026-07-11 22:45:28 -07:00
2026-02-20 18:42:00 -08:00
2026-08-10 12:32:45 -07:00
2026-08-10 12:32:45 -07:00
2026-08-07 21:56:15 -07:00
2026-08-10 12:32:45 -07:00
2026-08-10 12:32:45 -07:00
2026-08-07 21:56:15 -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-07-02 15:13:46 -07:00
2026-07-16 13:55:38 -07:00
2026-08-09 22:20:34 -07:00
2026-01-07 13:06:08 -08: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-08 09:14:57 -07:00
2026-07-27 14:28:29 -07:00
2026-06-01 20:33:37 -07:00
2026-08-07 19:44:39 -07:00
2026-08-10 09:41:00 -07:00
2026-08-10 11:02:09 -07:00
2026-06-01 20:33:37 -07:00
2026-07-16 13:55:38 -07:00
2026-08-08 09:14:57 -07:00
2026-03-18 23:28:07 -07:00
2026-02-09 07:46:34 -08:00
2026-03-18 23:28:07 -07:00
2026-04-15 12:29:31 -07:00
2026-04-10 17:31:14 -07:00
2026-07-25 23:53:29 -07:00
2026-08-10 16:31:26 -07:00
2026-05-11 13:50:48 -07:00
2026-07-15 23:24:04 -07:00
2026-06-26 14:22:57 -07:00
2026-08-07 23:36: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-06-25 10:38:14 -07:00
2026-06-25 10:38:14 -07:00
2026-07-10 22:06:36 -07:00
2026-08-15 13:28:49 -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-13 23:33:01 -07:00
2026-08-13 23:33:01 -07:00
2026-08-10 16:31:26 -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-07-25 23:53:29 -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-04-27 12:22:42 -07:00
2026-08-09 12:43:31 -07:00
2026-07-15 23:24:04 -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-07-30 11:58:14 -07:00
2026-06-11 21:56:16 -07:00
2026-06-11 21:56:16 -07:00