Multiple NameNode role-groups may lead to cluster startup failure
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 25/100
- Tipo de issue
- Error
- Claridad
- Necesita aclaración
- Estado de actividad
- Estancado
- Stack tecnológico
- kubernetes, rust
Línea de trabajo
Comienza con el script del contenedor init format-namenode y reproduce el arranque con dos grupos de roles de NameNode; comprueba cómo ambos pueden formatearse como active en paralelo. Revisa las opciones de ZooKeeper y operator-determined-role, además de issue #261, y considera las pruebas de integración mencionadas en el informe; se considera terminado cuando el arranque sea determinista, con un NameNode active y sin un fallo por una imagen no válida.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Affected version
0.7.0-nightly
Current and expected behavior
Currently, we have a format-namenode namenode init container and a script to either create an active or standby namenode.
With one role-group and the podManagementPolicy: "OrderedReady" we make sure that namenodes (actually data and journalnodes as well) will spin up after another.
With two role-groups like:
nameNodes:
roleGroups:
default:
replicas: 1
other_default:
replicas: 1
we get two StatefulSets, which by itself respect the "OrderedReady" policy but spin up their individual Pods in parallel.
This may lead to a cluster startup failure. The namenodes of the different role-groups sometimes (flaky) both format itself as active, with different blob IDs etc. which leads to the "slower" namenode to fail starting up and joining the cluster:
Failed to start namenode.
java.io.FileNotFoundException: No valid image files found
at org.apache.hadoop.hdfs.server.namenode.FSImageTransactionalStorageInspector.getLatestImages(FSImageTransactionalStorageInspector.java:158)
at org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImage(FSImage.java:688)
at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:339)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFSImage(FSNamesystem.java:1201)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFromDisk(FSNamesystem.java:779)
at org.apache.hadoop.hdfs.server.namenode.NameNode.loadNamesystem(NameNode.java:681)
at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:768)
at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:1020)
at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:995)
at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1769)
at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1834)
Possible solution
We have to improve the format-namenode init container script to take into account namenodes (and their formatting) starting in parallel. Currently it just checks if there is already an active namenode and depending on that will format as active or standby (which leads to the "race" condition of having two nodes formatted as active with different blob IDs).
- Take ZooKeeper into account?
- Let the operator determine which role-group should format as active?
- Introduce "wait" times for different role-groups to make sure they will not spin up in parallel (not very deterministic)
@lfrancke @soenkeliebau @Jimvin any ideas?
Additional context
This came up when implementing logging for the HDFS operator (and the integrationtests using multiple role-groups per role for custom and automatic log testing).
We should try to get rid of the "OrderedReady" policy part anyways (see https://github.com/stackabletech/hdfs-operator/issues/261) to speed up cluster creation.
Environment
Failed on GKE 1.23, AWS 1.22, Azure 1.23 (and probably any other provider)
Would you like to work on fixing this bug?
None
- Lenguaje dominante
- Rust
- Estrellas
- 53
- Forks
- 10
- Merge medio
- 1 d 8 h
- PR fusionados (30 d)
- 9
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 stackabletech/hdfs-operator
-
Topology Provider permissions briefly dropped during reconciliation when the reflector watch resetsAbiertotype/bug
Dificultad 4/5 3-5 días Aptitud para principiantes 42/100
stackabletech/hdfs-operator#774 ·
Los mantenedores suelen responder en 1 día
-
type/bug
Dificultad 3/5 1-2 días Aptitud para principiantes 58/100
stackabletech/hdfs-operator#773 ·
Los mantenedores suelen responder en 1 día
-
Re-enable restart-controllerAbiertotype/internal-debt
Dificultad 5/5 Más de una semana Aptitud para principiantes 15/100
stackabletech/hdfs-operator#769 ·
Los mantenedores suelen responder en 1 día
-
type/bug
Dificultad 3/5 1-2 días Aptitud para principiantes 52/100
stackabletech/hdfs-operator#763 ·
Los mantenedores suelen responder en 1 día
-
Incorrect Kerberos principals are created when external-* listener is configured on namenodeAbiertotype/bug
Dificultad 4/5 3-5 días Aptitud para principiantes 42/100
stackabletech/hdfs-operator#712 ·
Los mantenedores suelen responder en 1 día
Todos los issues de stackabletech/hdfs-operator
Issues similares
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 80/100
Devolutions/picky-rs#546 · 1 comentario ·
Los mantenedores suelen responder en 3 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
zcashlabs/thus-spoke-zakura#153 ·
Los mantenedores suelen responder en 1 día
-
claude_code: step fails on session-scoped (`@inline`) plugins with `Invalid scope "session"`Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 79/100
topgrade-rs/topgrade#2395 ·
Los mantenedores suelen responder en 1 día