Commit 492b22d
committed
fix(admin): clamp seed-fallback targets to maxNodes
Codex P2 on 501b017: when every discovery RPC fails (or the caller
context cancels, or refreshMembership returns an unexpected type),
currentTargets / refreshMembership returned the raw f.seeds list,
bypassing the maxNodes bound that membersFrom otherwise enforces. With
an oversized --nodes list (or under outage conditions where the
fallback path actually fires), /api/cluster/overview could spawn one
RPC per seed entry — exactly when the system is already degraded.
Add fanout.seedTargets() that returns a deduplicated copy of f.seeds
clamped to f.maxNodes, and replace all three raw-seed-return sites
with it. Regression test feeds 9 seeds (1 duplicate) with maxNodes=5
and asserts the result is 5 distinct entries.1 parent 501b017 commit 492b22d
2 files changed
Lines changed: 61 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
313 | 313 | | |
314 | 314 | | |
315 | 315 | | |
316 | | - | |
| 316 | + | |
317 | 317 | | |
318 | 318 | | |
319 | 319 | | |
| |||
669 | 669 | | |
670 | 670 | | |
671 | 671 | | |
672 | | - | |
| 672 | + | |
673 | 673 | | |
674 | 674 | | |
675 | 675 | | |
| |||
680 | 680 | | |
681 | 681 | | |
682 | 682 | | |
683 | | - | |
| 683 | + | |
684 | 684 | | |
685 | 685 | | |
686 | 686 | | |
| 687 | + | |
| 688 | + | |
| 689 | + | |
| 690 | + | |
| 691 | + | |
| 692 | + | |
| 693 | + | |
| 694 | + | |
| 695 | + | |
| 696 | + | |
| 697 | + | |
| 698 | + | |
| 699 | + | |
| 700 | + | |
| 701 | + | |
| 702 | + | |
| 703 | + | |
| 704 | + | |
| 705 | + | |
| 706 | + | |
| 707 | + | |
| 708 | + | |
| 709 | + | |
| 710 | + | |
| 711 | + | |
| 712 | + | |
| 713 | + | |
| 714 | + | |
| 715 | + | |
| 716 | + | |
687 | 717 | | |
688 | 718 | | |
689 | 719 | | |
| |||
713 | 743 | | |
714 | 744 | | |
715 | 745 | | |
716 | | - | |
| 746 | + | |
717 | 747 | | |
718 | 748 | | |
719 | 749 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
276 | 276 | | |
277 | 277 | | |
278 | 278 | | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
279 | 306 | | |
280 | 307 | | |
281 | 308 | | |
| |||
0 commit comments