Uncategorized

ERROR: Message hist queue is filling up

Un error de heartbeat, genérico, aunque a mi personalmente me afecta en el tema de pgpool, ya que tengo un pgpool en alta disponibilidad con heartbeat. Al intentar añadir un tercer nodo, pues lo tipico, como la configuración de heartbeat es idéntica en todos los nodos, copias.

Erroooooor!

Por lo visto parece ser un bug, o no bug, no me quedó claro pero francamente no me apetecía seguir leyendo memeces en foros; en el que se conoce que si copias ficheros de configuración de un nodo a otro, mágicamente, la comunicación entre nodos deja de funcionar. De ahí que no se envíen correctamente los mensajes, de ahí que se llene la cola de mensajes.

En un primer momento pensé: firewall o similares. Así que el puerto que tengo configurado en mi ha.cf en heartbeat (que es UDP) lo abrí en todos los nodos, incluído en el que me daba problemas (yo que sé…). Pero nada, al cabo de un rato se vuelve a llenar la cola y en los logs, lloros. Seguí investigando. En mi caso estaba utilizando broadcast a lo loco para la comunicación entre nodos. Lo cual es guay y cómodo si tienes bien montada tu red. Leyendo, leyendo, encontré un artículo en el que hablaba de este mismo bug (no he podido volver a encontrar la fuente, así que no puedo dar crédito al logro. Espero que los Dioses de Internet sepan perdonarme). El colega sufría de la misma dolencia y, por el mismo motivo, copió los ficheros de un nodo a otro a lo loco pensando, ingenuo de él, que como eran iguales iba a dar lo mismo. Lo resuelve de una forma efectiva, segura pero poco eficiente o cómoda en el caso de que tu heartbeat controle muchos nodos. Esto es, unicast.

En tu ficherito de ha.cf te comentas la línea mágica y maravillosa que reza bcast a tu interfaz de red, en mi caso:

bcast bond0

Y la sustituyes por:

ucast bond0 <IP del otro nodo>

Y lo cruzas, es decir: En cada nodo haces lo mismo con el resto de nodos. Por eso digo que si tienes muchos nodos, es una mierda. O te lo curras a manija o te toca currarte un puppet o un rex o lo que sea que uses para automatizar. Que tampoco es un drama, pero semejante chorrada no debería de ocupar a nadie tanto tiempo.

Y así, sí. Así heartbeat decide que le gusta, que va a escuchar los mensajes de los otros nodos, porque el broadcast es muy mainstream. Su puta madre.

En próximas ediciones os contaré mis aventuras y desventuras con HAProxy, porque si va bien, le van a dar por culo a “jeartbit” pero muy rápidamente.

Hasta pronto, corazones.

Anuncios