Nguyễn Đăng Minh Lực and Chris Lu
71f8128d75
shell: fs.verify -pruneEntries deletes entries whose needles are lost ( #11338 )
...
* shell: fs.verify -pruneEntries deletes entries whose needles are lost
* shell: harden fs.verify -pruneEntries guards; VolumeNeedleStatus returns NotFound for absent needles
* shell: resolve chunk manifests in fs.verify metadata path; require confirmed deletion before counting prunes
* shell: anchor fs.verify legacy missing-needle error matching
* shell: keep fs.verify metadata scan alive on manifest resolution failures
* shell: classify EC missing needles and keep manifest failures unverified
VolumeNeedleStatus now canonicalizes erasure_coding.NotFoundError to
codes.NotFound, so absent needles in EC volumes reach the prune path
through the same stable contract as regular volumes. The client-side
isNeedleMissingError keeps recognizing the legacy wrapped EC shape
("locate in local ec volume: ... needle not found") for mixed-version
clusters.
A chunk manifest that fails to resolve is now an entry-level
verification failure even when the raw top-level chunks are healthy:
the file is not fully readable without the manifest. Raw chunks are
still verified on a resolution failure so a missing top-level manifest
needle is classified and can be pruned. The per-entry logic is
extracted into resolveAndVerify for testability.
* shell: trim fs.verify prune comments
---------
Co-authored-by: Chris Lu <chris.lu@gmail.com >
2026-09-15 20:42:18 -07:00
..
2026-08-27 22:27:45 -07:00
2026-08-27 22:27:45 -07:00
2026-08-27 22:27:45 -07:00
2026-01-07 13:06:08 -08:00
2026-08-27 22:27:45 -07:00
2026-08-27 22:27:45 -07:00
2026-08-27 22:27:45 -07:00
2026-07-17 12:30:42 -07:00
2026-07-17 12:30:42 -07:00
2026-08-27 22:27:45 -07:00
2026-04-21 20:17:42 -07:00
2026-08-27 22:27:45 -07:00
2026-08-13 13:22:58 -07:00
2026-08-14 13:54:12 -07:00
2026-08-25 18:03:52 -07:00
2026-08-27 22:27:45 -07:00
2026-08-27 22:27:45 -07:00
2026-08-25 18:03:52 -07:00
2026-08-14 13:54:12 -07:00
2026-08-28 16:42:34 -07:00
2026-08-14 13:54:12 -07:00
2025-10-24 20:21:35 -07:00
2025-10-24 20:21:35 -07:00
2026-07-31 00:34:22 -07:00
2026-04-17 21:09:36 -07:00
2026-09-04 23:12:27 -07:00
2025-10-24 20:21:35 -07:00
2026-01-07 13:06:08 -08:00
2025-10-24 20:21:35 -07:00
2026-09-14 11:29:48 -07:00
2026-09-14 11:29:48 -07:00
2025-10-24 20:21:35 -07:00
2026-04-28 12:30:13 -07:00
2026-04-28 12:30:13 -07:00
2026-01-14 21:37:50 -08:00
2026-07-23 17:44:02 -07:00
2025-10-24 20:21:35 -07:00
2026-06-08 23:42:13 -07:00
2026-06-08 23:42:13 -07:00
2025-10-24 20:21:35 -07:00
2025-10-24 20:21:35 -07:00
2025-10-24 20:21:35 -07:00
2026-09-15 20:42:18 -07:00
2026-09-15 20:42:18 -07:00
2026-07-17 12:30:42 -07:00
2025-10-17 22:11:50 -07:00
2026-01-07 13:06:08 -08:00
2025-10-13 18:05:17 -07:00
2026-05-12 12:37:09 -07:00
2026-01-07 13:06:08 -08:00
2026-01-07 13:06:08 -08:00
2025-09-09 01:01:03 -07:00
2026-08-27 22:29:48 -07:00
2026-09-14 22:09:08 -07:00
2026-07-04 10:50:32 -07:00
2026-07-04 10:50:32 -07:00
2026-08-27 22:29:48 -07:00
2026-07-15 19:20:00 -07:00
2026-09-04 23:50:11 -07:00
2026-02-05 12:57:27 -08:00
2026-07-22 14:38:06 -07:00
2026-08-18 15:38:02 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-03-25 23:09:53 -07:00
2026-05-18 13:42:32 -07:00
2026-01-27 10:50:16 -08:00
2026-08-27 22:27:45 -07:00
2026-06-06 11:20:15 -07:00
2026-07-08 14:32:04 -07:00
2026-01-27 10:50:16 -08:00
2026-08-04 16:00:04 -07:00
2026-07-03 12:39:45 -07:00
2026-07-10 22:09:39 -07:00
2026-02-26 11:56:10 -08:00
2022-09-16 02:43:49 -07:00
2026-05-07 17:45:04 -07:00
2025-07-16 23:39:27 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-06-24 19:36:42 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-12 18:29:18 -07:00
2026-09-13 13:07:10 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-07-08 18:50:54 -07:00
2026-08-19 22:59:56 -07:00
2026-01-30 22:57:05 -08:00
2026-04-28 12:30:13 -07:00
2026-01-30 22:57:05 -08:00
2026-03-03 15:10:40 -08:00
2026-08-13 19:11:38 -07:00
2026-08-25 18:03:52 -07:00
2026-09-06 23:25:28 -07:00
2026-09-06 23:25:28 -07:00
2026-08-25 18:03:52 -07:00
2026-08-12 12:29:40 -07:00
2026-08-25 18:03:52 -07:00
2026-08-25 18:03:52 -07:00
2026-08-10 11:10:29 -07:00
2026-08-25 18:03:52 -07:00
2026-08-25 18:03:52 -07:00
2026-07-21 12:43:38 -07:00
2026-08-25 18:03:52 -07:00
2026-08-27 16:44:19 -07:00
2026-09-02 17:43:46 -07:00
2026-08-27 22:27:45 -07:00
2026-08-25 18:03:52 -07:00
2026-08-25 18:03:52 -07:00
2026-06-23 11:27:43 -07:00
2026-08-10 16:31:26 -07:00
2026-08-04 16:58:25 -07:00
2026-08-12 12:29:40 -07:00
2026-01-07 13:06:08 -08:00
2026-08-13 13:22:58 -07:00
2026-08-28 16:42:34 -07:00
2023-03-13 10:00:27 -07:00
2026-08-14 13:54:12 -07:00
2025-11-09 19:58:38 -08:00
2026-07-22 14:38:06 -07:00
2026-03-20 23:52:12 -07:00
2026-09-14 22:09:08 -07:00
2026-09-14 22:09:08 -07:00
2026-06-11 10:46:34 -07:00
2026-08-25 18:03:52 -07:00
2026-07-11 13:49:36 -07:00
2026-09-14 22:09:08 -07:00
2026-01-07 13:06:08 -08:00
2026-08-27 22:27:45 -07:00
2026-08-27 22:27:45 -07:00
2026-08-27 22:27:45 -07:00
2026-04-07 14:10:15 -07:00
2026-08-27 22:27:45 -07:00
2026-08-14 13:54:12 -07:00
2026-08-25 18:03:52 -07:00
2026-06-14 13:55:36 -07:00
2026-09-02 22:12:51 -07:00
2026-09-02 22:12:51 -07:00
2026-08-31 11:36:23 -07:00
2025-12-15 11:18:45 -08:00
2025-12-15 11:18:45 -08:00
2025-12-15 11:18:45 -08:00