Cp-ansible: Salida del módulo Kafka Connect

Creado en 15 sept. 2020  ·  12Comentarios  ·  Fuente: confluentinc/cp-ansible

Aparte del hecho de que esta es una característica muy buena y hace la vida mucho más fácil, la salida, por desgracia, a menudo no es muy útil. Obtiene un retorno de 400 al implementar n conectores, sin importar si la contraseña JDBC en un conector no es correcta o si el formato de otro conector no es adecuado. Al menos esta es mi impresión hasta ahora. No he tenido tiempo de analizar el código con más detalle, pero tal vez alguien pueda responder la pregunta, si esto se debe a la API del conector o si esto podría mejorarse en el módulo.

bug help wanted

Todos 12 comentarios

@Fobhep Gracias por la pregunta. ¿De dónde obtiene el error 400, quiere decir después de que Connect se reinicia y se ejecuta la verificación de estado?

Si es así, la verificación de estado simplemente verifica si podemos consultar la lista de conectores de la API Connect. Entonces, si termina en 400, esto significa que Connect no pudo iniciarse por alguna razón.

¿Puede confirmar dónde está recibiendo el error 400?

Gracias

El error ocurre cuando se ejecuta la tarea de implementación del conector kafka y Ansible devuelve
Solicitud agotada o solicitud incorrecta

Después de indagar en los registros, logré encontrar Excepciones que indicaban que, por ejemplo, la contraseña de un conector era incorrecta.

@Fobhep ¿Puede compartir qué conectores intentó implementar y cuál tiene la configuración incorrecta? Queremos reproducir esto en casa.

Creemos que tal vez sea un problema en la biblioteca de Python, por lo que si un nuevo conector falla, no devuelve el código de error de la API, mientras que, como si fallara una actualización de conector existente, sí.

@JumaX En ese escenario de cliente en particular, solo eran conectores JDBC

Otra cosa que noté solo ahora:

A veces tengo un

"HTTP Error: 409 Conflict", pero el módulo en sí dice "cambiado: verdadero".

Ahora soy consciente de que la API REST puede devolver 409 al publicar mientras un reequilibrio está en acción.
Pero, ¿no debería fallar el módulo si no se realizó un trabajo POST?
¿O 409 significa que se realizó el POST, pero había un Rebalane al mismo tiempo?

¿Algo nuevo aquí? Esta API REST para agregar conectores parece tener su propia mente. Acabo de agregarle un conjunto de 6 conectores jdbc oracle (3source, 3sink).
La primera vez que recibí una solicitud incorrecta 400 y no se configuró nada ... ok
Vuelva a intentarlo con la misma configuración exacta. Ahora 1 de 6 está implementado, todavía tiene una solicitud incorrecta 400 ...

Esto se agregó como una contribución de la comunidad, he hablado con el autor y él está haciendo una prioridad para revisar esto, esta semana.

@Fobhep @JumaX Reanudando el trabajo en este problema ahora, lo siento por la respuesta tardía. Volveré a escribir la gestión de errores para que obtengamos un mensaje / resultado explícito para cada conector.

También veré si hay una manera de esperar a que termine el reequilibrio. El 409 es de hecho la respuesta que obtenemos cuando hay un reequilibrio, por lo que inicialmente no lo traté como un error, pero es cierto que enmascara un error si hay uno, lo cual es desafortunado.

Actualización rápida: He reescrito completamente la gestión de errores y he agregado una verificación de estado en las tareas de los conectores, lo que significa que si un conector no se inicializa, será detectado y devuelto como error. Preparando un PR ahora.

@ldom ¿ alguna actualización de estado sobre esto?

@jamuska PR está ahí, pero aún no se ha fusionado (https://github.com/confluentinc/cp-ansible/pull/490). Supongo que Justin está esperando las pruebas de moléculas. Trabajaré en ellos esta semana.

@ldom @jamuska Correcto, estamos esperando las pruebas de moléculas. Avísame si puedo ser de ayuda @ldom.

¿Fue útil esta página
0 / 5 - 0 calificaciones