Commit 0bd8f06
committed
fix: healing to list, purge dangling objects (minio#621)
in a specific corner case when you only have dangling
objects with single shard left over, we end up a situation
where healing is unable to list this dangling object to
purge due to the fact that listing logic expected only
`len(disks)/2+1` - where as when you make this choice you
end up with a situation that the drive where this object
is present is not part of your expected disks list, causing
it to be never listed and ignored into perpetuity.
change the logic such that HealObjects() would be able
to listAndHeal() per set properly on all its drives, since
there is really no other way to do this cleanly, however
instead of "listing" on all erasure sets simultaneously, we
list on '3' at a time. So in a large enough cluster this is
fairly staggered.1 parent 6640be3 commit 0bd8f06
3 files changed
+8
-17
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
55 | 55 | | |
56 | 56 | | |
57 | 57 | | |
58 | | - | |
59 | | - | |
60 | | - | |
61 | | - | |
62 | 58 | | |
63 | 59 | | |
64 | 60 | | |
| |||
75 | 71 | | |
76 | 72 | | |
77 | 73 | | |
78 | | - | |
79 | 74 | | |
80 | 75 | | |
81 | 76 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
| 48 | + | |
48 | 49 | | |
49 | 50 | | |
50 | 51 | | |
| |||
2467 | 2468 | | |
2468 | 2469 | | |
2469 | 2470 | | |
2470 | | - | |
| 2471 | + | |
2471 | 2472 | | |
2472 | 2473 | | |
2473 | 2474 | | |
| |||
2476 | 2477 | | |
2477 | 2478 | | |
2478 | 2479 | | |
2479 | | - | |
| 2480 | + | |
2480 | 2481 | | |
2481 | 2482 | | |
2482 | 2483 | | |
2483 | 2484 | | |
2484 | | - | |
| 2485 | + | |
2485 | 2486 | | |
2486 | | - | |
| 2487 | + | |
2487 | 2488 | | |
2488 | 2489 | | |
2489 | 2490 | | |
2490 | 2491 | | |
2491 | | - | |
2492 | | - | |
| 2492 | + | |
| 2493 | + | |
2493 | 2494 | | |
2494 | 2495 | | |
2495 | 2496 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
352 | 352 | | |
353 | 353 | | |
354 | 354 | | |
355 | | - | |
356 | | - | |
357 | | - | |
358 | | - | |
359 | 355 | | |
360 | 356 | | |
361 | 357 | | |
| |||
518 | 514 | | |
519 | 515 | | |
520 | 516 | | |
521 | | - | |
522 | 517 | | |
523 | 518 | | |
524 | 519 | | |
| |||
540 | 535 | | |
541 | 536 | | |
542 | 537 | | |
543 | | - | |
| 538 | + | |
544 | 539 | | |
545 | 540 | | |
546 | 541 | | |
| |||
0 commit comments