WAGED simulation API doesn't provide actual reason for the assignment calculation fail
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- java
- Ambito
- backend-api-design
Direzione di ricerca
Inizia da HelixUtil.getTargetAssignmentForWagedFullAuto() e segui il percorso di errore di getIdealAssignmentForWagedFullAuto() per vedere dove FAILED_TO_CALCULATE viene sostituito dalla HelixException generica. Esamina il contesto correlato nella pull request #1701. Il lavoro è completato quando l’util espone l’errore di calcolo effettivo invece del solo messaggio generico.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Describe the bug
I've tried to using HelixUtil.getTargetAssignmentForWagedFullAuto() to check capacity availability for a resource before adding it to the cluster (refer to the below snippet). However, it ends up in a HelixException with getIdealAssignmentForWagedFullAuto(): Calculation failed: Failed to compute BestPossibleState! as the cause. Is it because the cluster doesn't have enough capacity for the resource? If so, is there a way to get actual FAILED_TO_CALCULATE exception propagated here, instead of having a generic cause?
To Reproduce
try {
IdealState newIS = getIdealState(resourceName);
ResourceConfig newResourceConfig = new ResourceConfig(resourceName);
// Set PARTITION_CAPACITY_MAP
Map<String, String> capacityDataMap = ImmutableMap.of("CPU", "20", "MEMORY", "60");
newResourceConfig.getRecord().setMapField(ResourceConfig.ResourceConfigProperty.PARTITION_CAPACITY_MAP.name(),
Collections.singletonMap(ResourceConfig.DEFAULT_PARTITION_KEY, OBJECT_MAPPER.writeValueAsString(capacityDataMap)));
// Read existing cluster/instances/resources info
final ZKHelixDataAccessor dataAccessor = new ZKHelixDataAccessor(CLUSTER_NAME,
new ZkBaseDataAccessor.Builder<ZNRecord>().setZkAddress(ZK_ADDRESS).build());
ClusterConfig clusterConfig = dataAccessor.getProperty(dataAccessor.keyBuilder().clusterConfig());
List<InstanceConfig> instanceConfigs = dataAccessor.getChildValues(dataAccessor.keyBuilder().instanceConfigs(), true);
List<String> liveInstances = dataAccessor.getChildNames(dataAccessor.keyBuilder().liveInstances());
List<IdealState> idealStates = dataAccessor.getChildValues(dataAccessor.keyBuilder().idealStates(), true);
List<ResourceConfig> resourceConfigs = dataAccessor.getChildValues(dataAccessor.keyBuilder().resourceConfigs(), true);
// Do we need add this?
idealStates.add(newIS);
resourceConfigs.add(newResourceConfig);
// Verify that utilResult contains the assignment for the resources added
Map<String, ResourceAssignment> utilResult = HelixUtil
.getTargetAssignmentForWagedFullAuto(ZK_ADDRESS, clusterConfig, instanceConfigs,
liveInstances, idealStates, resourceConfigs);
} catch (HelixException e) {
// Getting "getIdealAssignmentForWagedFullAuto(): Calculation failed: Failed to compute BestPossibleState!"
// means not enough capacity?
}
Expected behavior
- Get actual
FAILED_TO_CALCULATEexception propagated to the util, instead of having the genericHelixException.
Additional context
- Lingua principale
- Java
- Stelle
- 505
- Fork
- 258
- Merge medio
- 4g 20h
- PR unite (30g)
- 3
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Nessuna guida per i contributori
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 apache/helix
-
Four TestConstraintBasedAlgorithm tests pass when nothing is thrownForse già presa @sharanggupta l’ha presa oggi. Aperta
Difficoltà 1/5 1-3 ore Idoneità per principianti 85/100
-
Helix ZkClient times out after successful ZooKeeper SASL DIGEST-MD5 authenticationForse già presa @adityaanikam l’ha presa 43 giorni fa. Apertabug
Difficoltà 3/5 1-2 giorni Idoneità per principianti 68/100
-
NPE in canCompleteSwap if path doesn't existsForse già presa @waterWang l’ha presa 106 giorni fa. Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 50/100
-
Legacy IZkStateListenerI0ItecImpl causes zombie participants by discarding session IDsForse già presa @LZD-PratyushBhatt l’ha presa 457 giorni fa. Apertabug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
-
bug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
Tutte le issue di apache/helix
Issue simili
-
Enhancing the Issue TemplateAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
SasanLabs/VulnerableApp#912 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno
-
desktop edt not responding
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
datafusion-contrib/StreamFusion#653 ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug] Absolute row/column index 0 is ignored for images, hyperlinks and commentsForse già presa @fanOfSunny l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno