Helix Controller Does Not Rebalance Partitions After A Participant Loss
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
- Necesita aclaración
- Estado de actividad
- Estancado
- Stack tecnológico
- aws, docker, java
Línea de trabajo
Comienza siguiendo el manejo del rebalanceo FULL_AUTO de Apache Helix para el modelo de estado OnlineOffline durante una terminación forzada de AWS ECS Spot. Compara LIVEINSTANCES y EXTERNALVIEW después de que desaparezca el nodo, y luego compara el comportamiento del controlador con el reinicio manual del servicio que restaura las asignaciones. Se considera completado cuando las particiones que anteriormente pertenecían al nodo detenido se reasignan automáticamente a nodos activos sin reiniciar todos los servicios.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Problem
We are using Apache Helix to distribute a resource across multiple services - all registered under the same Helix cluster name and The system is deployed on AWS ECS Fargate using Docker containers.
Each service uses the OnlineOffline state model, with 1 replica per partition and the FULL_AUTO rebalance mode.
When all services start, Helix assigns partitions as expected and all services consume their assigned partitions. The problem occurs when a service is restarted - due to an AWS Spot Termination which appear to forcefully kill the container, bypassing the logic we have to handle SIGTERM
So when a service is restarted from the cluster, the partition previously assigned to the now-stopped node are not reassigned to new live nodes. As a result, that partition remains Idle, even though other nodes are available and registered in live instances.
I have tried with both Apache Helix version 0.9.9 and the latest 1.4.3, but the problem still persists in both versions. Also When a node is removed from the cluster, there are no logs from the controller instance indicating that it is attempting to rebalance the partitions.
Additional Context After ZooKeeper Inspection
- /LIVEINSTANCES is perfectly listing only actively running nodes.
- But in /EXTERNALVIEW for that partition still shows the stopped node as ONLINE and does not reassign it to a live node.
- This mismatch persists even after new nodes are registered as live instances.
Expected behavior
Helix should detect that the node is no longer live and automatically reassign its partitions to other available nodes in the cluster.
What worked for us
But I have been able to temporarily resolve the issue by performing a manual restart of all services register under that HELIX CLUSTER. After the manual restart, all partitions are perfectly reassigned.
I will be active here and will respond to all your replies as soon as possible and I am happy to provide any additional information or logs that would help with debugging this issue.
- 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