Regeneration of DISABLE operations when setting instance operations
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- java
- Área
- distributed-systems
Línea de trabajo
Comienza con getActiveInstanceOperation() y getInstanceOperation(), luego reproduce las dos solicitudes EVACUATE mediante la API setInstanceOperation e inspecciona la configuración de la instancia en ZooKeeper. Rastrea por qué EVACUATE provoca una nueva operación DISABLE cuando HELIX_ENABLED=false en los campos legacy. El trabajo está terminado cuando las operaciones EVACUATE repetidas ya no regeneran marcas de tiempo DISABLE ni entradas LEGACY_DISABLED_TYPE, y las transiciones de instancia proceden con normalidad.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Describe the bug
There is a bug in the instance operation handling logic that causes an infinite cycle of regenerated DISABLE operations when applying operations like EVACUATE to an instance with HELIX_ENABLED=false in legacy fields. This prevents proper instance lifecycle transitions and causes unexpected behavior in instance swapping scenarios.
To Reproduce
- Create an instance in the cluster.
- Set DISABLE operation with USER source:
Apply to InstanceConf...
curl -X POST "http://<host>:<port>/admin/v2/clusters/<cluster>/instances/<instance>?command=setInstanceOperation&instanceOperationSource=USER&instanceOperation=DISABLE" - Set EVACUATE operation with AUTOMATION source:
Apply to InstanceConf...
curl -X POST "http://<host>:<port>/admin/v2/clusters/<cluster>/instances/<instance>?command=setInstanceOperation&instanceOperationSource=AUTOMATION&instanceOperation=EVACUATE" - Set EVACUATE operation again with AUTOMATION source
- Check the instance configuration in ZooKeeper
After the second EVACUATE operation, a new DISABLE operation is generated with:
- Updated timestamp (more recent than the EVACUATE timestamp)
- Added LEGACY_DISABLED_TYPE field
- The cycle repeats with each subsequent evacuate operation
Expected behavior
The DISABLE operation should not be regenerated with new timestamps when setting a different operation. Instance operations should be updated consistently without creating an infinite cycle.
Additional context
RCA:
The regeneration happens because:
- getActiveInstanceOperation() returns the last operation (EVACUATE)
- EVACUATE is in INSTANCE_DISABLED_OVERRIDABLE_OPERATIONS
- This causes getInstanceOperation() to override it with a newly generated DISABLE operation
- Lenguaje dominante
- Java
- Estrellas
- 505
- Forks
- 258
- Merge medio
- 4 d 20 h
- PR fusionados (30 d)
- 3
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de apache/helix
-
Four TestConstraintBasedAlgorithm tests pass when nothing is thrownPosiblemente ocupada @sharanggupta la tomó hoy. Abierto
Dificultad 1/5 1-3 horas Aptitud para principiantes 85/100
-
Helix ZkClient times out after successful ZooKeeper SASL DIGEST-MD5 authenticationPosiblemente ocupada @adityaanikam la tomó hace 43 días. Abiertobug
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
-
NPE in canCompleteSwap if path doesn't existsPosiblemente ocupada @waterWang la tomó hace 106 días. Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 50/100
-
Legacy IZkStateListenerI0ItecImpl causes zombie participants by discarding session IDsPosiblemente ocupada @LZD-PratyushBhatt la tomó hace 457 días. Abiertobug
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
-
bug
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
Todos los issues de apache/helix
Issues similares
-
bug documentation good first issue help wanted priority low size XS
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
martin-francois/symphony-trello#1351 ·
Los mantenedores suelen responder en 1 día
-
Add test coverage for ConvertUtil.parseDate() with NULL inputPosiblemente ocupada @mirajul-mollah7 la tomó hoy. Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 78/100
eclipse-sw360/sw360#4792 · 1 comentario ·
Los mantenedores suelen responder en 3 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
aws/aws-emulator#30 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 4 días
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100