Geary se cuelga al conectarse a Gmail vía IMAP.

Descripción del problema

Recientemente he tenido problemas de conexión con el cliente de correo Geary y mis cuentas de Gmail. Probé distintas distribuciones, cuentas de correo e incluso con otros clientes de correo y el factor común del error siempre fue: Geary + Gmail. Descarté entonces un posible problema de una distribución o algún proveedor del correo.

Busque información en Internet pero no encontré información relacionada a este problema específico. Ocurrió que me topé con un salida de error de Geary en la que mandaba un mensaje de error: “Timeout was reached”.

Este mensaje de error fue la pista que necesitaba que finalmente me llevó a encontrar más información. En este hilo del gitlab de gnome.org encontré alguien más que tuvo esta problemática y la solución. El problema ocurre debido a que Geary no puede establecer comunicación con el servidor IMAP de Gmail a través de IPv6, por lo que se queda esperando hasta que se rebasa el tiempo de espera.

A través del comando gnutls-cli imap.gmail.com:imaps se puede ver la falla que experimenta Geary en la conexión, la muestro en la siguiente captura.


En el resultado se pueden ver tres intentos de conexión, siendo los primeros dos a través de la dirección IPv6 en los que tomó mucho tiempo y la conexión no pudo establecerse, a diferencia del tercer intento que se hizo a través de IPv4 y funcionó correctamente.

Solución

La solución a este problema es algo extrema (en mi opinión), hay que deshabilitar IPv6 en el sistema para que Geary pueda comunicarse con Gmail a través de IPv4 en lugar de IPv6. Sobra decir que este cambio afecta a todo el sistema, y claramente se trata de un bug en Geary. Esperemos que los desarrolladores corrijan este problema para el próximo lanzamiento de Gnome 40.

Para deshabilitar IPv6 en ArchLinux hay que seguir lo que dicta la wiki. Para otra distribución habrá que seguir el método que aplique. Según la wiki, hay que crear el archivo /etc/sysctl.d/40-ipv6.conf, en la que hay que agregar las siguientes líneas:

# Disable IPv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.nic0.disable_ipv6 = 1
...
net.ipv6.conf.nicN.disable_ipv6 = 1

La primer línea deshabilita IPv6 mientras que las siguientes lo deshabilitan individualmente cada interfaz de red. Es necesario sustituir el nombre de dispositivo de su(s) tarjeta(s) de red en lugar del nombre genérico nicX de acuerdo a su sistema. Para conocer el nombre de dispositivo de las tarjetas de red basta con ejecutar el comando ip addr. En el caso de mi computadora, el resultado es el siguiente:

# Disable IPv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.enp10s0.disable_ipv6 = 1
net.ipv6.conf.wlp14s0.disable_ipv6 = 1

Posteriormente sólo es necesario reiniciar el servicio sysctl vía systemd.

systemd-sysctl.service

Luego de esto, Geary deberá conectarse satisfactoriamente al servicio IMAP de Gmail.

Conclusión

La incompatibilidad de comunicación de Geary a través de IPv6 es claramente una deficiencia en su funcionalidad, esperemos que los desarrolladores de Gnome corrijan este error en el ya muy cercano lanzamiento de Gnome 40. Deshabilitar el servicio IPv6 de todo el sistema operativo sólo para que una aplicación funcione debido a que no es compatible con la nueva versión de un protocolo es una solución extrema y excesiva, se trata de un defecto feo de Geary aunque a pesar de ello sigue siendo mi cliente de correo favorito.

Comentarios

Entradas más populares de este blog

Cómo habilitar y configurar el módulo userdir de Apache2 y PHP5 en Ubuntu

Instalar Spotify + Blockify Ubuntu 17.04

Problema con ícono de Chrome en Ubuntu Gnome 14.04