Commit 016a70d
committed
fix(gc): skip deleted miner actors in StorageGCMark instead of failing
When a miner actor no longer exists on-chain (e.g. removed from config
after deletion), StorageGCMark would fail with 'actor not found' and
enter a permanent retry loop, blocking all storage GC.
Handle the actor-not-found case gracefully in both Stage 1 (sector
liveness check) and Stage 3 (snap sector-key cleanup):
- Stage 1: Skip loading miner state for deleted actors. Their sectors
remain in the toRemove set since there are no on-chain precommits,
live, or unproven sectors to subtract.
- Stage 3: Skip finality-tipset actor lookups for deleted miners.
Snap sector-key cleanup is irrelevant for non-existent miners.
Only the specific 'actor not found' error triggers this path. Transient
RPC errors (timeouts, connection issues) still fail the task as before,
preventing accidental GC of sectors for healthy miners during network
disruptions.
Fixes a scenario where removing a calibration/test miner from config
causes StorageGCMark to fail 100% of runs indefinitely.1 parent a3473a4 commit 016a70d
1 file changed
+26
-0
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| 6 | + | |
6 | 7 | | |
7 | 8 | | |
8 | 9 | | |
| |||
122 | 123 | | |
123 | 124 | | |
124 | 125 | | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
125 | 133 | | |
126 | 134 | | |
127 | 135 | | |
| |||
383 | 391 | | |
384 | 392 | | |
385 | 393 | | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
386 | 400 | | |
387 | 401 | | |
388 | 402 | | |
| |||
501 | 515 | | |
502 | 516 | | |
503 | 517 | | |
| 518 | + | |
| 519 | + | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
| 523 | + | |
| 524 | + | |
| 525 | + | |
| 526 | + | |
| 527 | + | |
| 528 | + | |
| 529 | + | |
0 commit comments