TreeLB asserts when an element migrates outside a load-balancing step
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 52/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- cpp
- Ambito
- distributed-systems
Direzione di ricerca
Start with src/ck-ldb/TreeLB.C:477 and inspect TreeLB::objMovedIn, then trace how the load-balancing manager notifies the balancer for migrations outside a step. Reproduce with the commands in tests/ampi/migration using +balancer RandCentLB +ampiEnableMigrateToPe. Done when asynchronous migration no longer triggers the assertion and the migration test passes with the balancer enabled.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
An array element that arrives on a PE outside a load-balancing step trips TreeLB's assertion that a step is in progress, so TreeLB cannot be combined with asynchronous migration.
Reproduce
On the recharm line with #4064 (AMPI ranks migrate on reconverse), reconverse-linux-x86_64 or reconverse-darwin-arm8:
cd tests/ampi/migration && make
./migration +pe 2 +vp 8 +balancer RandCentLB +ampiEnableMigrateToPe
Assertion numLevels > 0 && awaitingLB[level] failed: file src/ck-ldb/TreeLB.C, line 484
Reason: Failed assert
It fails every run: 3 of 3 on Linux in one process, and 3 of 3 on macOS both in one process and under lcrun (seen in the review of #4064). Without +balancer the same test passes; tests/ampi/migration/Makefile never combines the two, which is why CI does not see it.
What happens
The test moves ranks with AMPI_Migrate_to_pe, an asynchronous migration that is not part of an LB step. When the element lands, the LB manager notifies the balancer, and TreeLB::objMovedIn (src/ck-ldb/TreeLB.C:477) asserts numLevels > 0 && awaitingLB[0], which holds only during a step. (RandCentLB runs through TreeLB's legacy mode.)
Before #4064 this path could not be reached on reconverse, because TCharm threads did not migrate, so this is newly reachable rather than a regression of that PR. Whether classic Converse hits it too was not checked.
Possible directions: ignore arrivals when no step is in progress (they are not part of a step's accounting), or keep the notification from reaching the balancer for migrations that a step did not order.
Found while reviewing #4064.
- Lingua principale
- C++
- Stelle
- 241
- Fork
- 62
- Merge medio
- 1g 1h
- PR unite (30g)
- 121
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di charmplusplus/charm
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
charmplusplus/charm#4210 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
charmplusplus/charm#4160 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
charmplusplus/charm#3619 · 4 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 52/100
charmplusplus/charm#4204 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 49/100
charmplusplus/charm#4200 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di charmplusplus/charm
Issue simili
-
Page request: clang-replApertahelp wanted new command
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
tldr-pages/tldr#25111 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
bug test
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
OpenAssetIO/OpenAssetIO#1527 ·
-
iOS Fabric pointer-handler reset leaves the next lone touch non-primaryForse già presa @alleneubank l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
react/react-native#59919 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
ROCm/rocm-systems#15475 ·
I maintainer di solito rispondono entro 2 giorni