[Enhancement] SyncStateInfo defensive-copy and epoch semantics lack direct tests
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 78/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- java
- Ambito
- testing-qa
Direzione di ricerca
La classe da testare è controller/src/main/java/org/apache/rocketmq/controller/impl/manager/SyncStateInfo.java, che copia i set in ingresso in updateSyncStateSetInfo e in uscita in getSyncStateSet. Leggi questi metodi e i test esistenti a livello di manager per capire come viene costruito lo stato del controller. Aggiungi test unitari diretti che modifichino il set del chiamante e il set restituito, e verifichino che lo stato memorizzato resti invariato, che updateMasterInfo incrementi l'epoca del master e che removeFromSyncState lasci invariata l'epoca dello sync-state. Il lavoro è completo quando i nuovi test passano e fallirebbero se le copie venissero rimosse.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Description
SyncStateInfo (controller/src/main/java/org/apache/rocketmq/controller/impl/manager/SyncStateInfo.java) maintains the controller's per-broker view of mastership: master identity + epoch, and the sync-state set + epoch. It deliberately copies sets on the way in and out:
public void updateSyncStateSetInfo(Set<Long> newSyncStateSet) {
this.syncStateSet = new HashSet<>(newSyncStateSet);
...
}
public Set<Long> getSyncStateSet() {
return new HashSet<>(syncStateSet);
}
The existing manager-level tests touch the class via larger flows, but no test pins the defensive-copy contract itself: mutating the caller's set after updateSyncStateSetInfo (or mutating the set returned by the getter) must not corrupt controller state, updateMasterInfo must bump the master epoch, and removeFromSyncState must remove locally without advancing the sync-state epoch. Losing any of these (e.g. "simplifying" away the copies) would silently let callers mutate controller state and currently no test would notice.
Expected behavior
Direct unit coverage of the isolation and epoch semantics described above.
- Lingua principale
- Java
- Stelle
- 22.6k
- Fork
- 12k
- Merge medio
- 6g 21h
- PR unite (30g)
- 17
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la 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/rocketmq
-
[Bug] notifyMasterOnline aborts the long-polling wake-up with a NullPointerException when an arrival drains a bucket firstForse già presa @iloveeyjafjalla l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
apache/rocketmq#11441 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug] DefaultMQPushConsumer.shutdown() never stops the pop consume service, so its non-daemon threads keep the JVM aliveForse già presa @iloveeyjafjalla l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
apache/rocketmq#11427 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
[Enhancement] FilterFactory duplicate-registration and unregister semantics lack testsForse già presa @chennaji9 l’ha presa 5 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
apache/rocketmq#11340 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
[Enhancement] LogicExpression three-valued truth table and short-circuit behavior lack direct testsForse già presa @chennaji9 l’ha presa 5 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
apache/rocketmq#11339 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
[Enhancement] ControllerClosure request-completion semantics lack direct testsForse già presa @chennaji9 l’ha presa 5 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
apache/rocketmq#11337 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di apache/rocketmq
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
bug new windows
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno
-
iOS podspec depends on `React-Codegen`, which resolves to an unrelated pod on CocoaPods trunkAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
GantMan/jail-monkey#380 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
objectionary/jucs#145 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
objectionary/lints#1559 ·
I maintainer di solito rispondono entro 2 giorni