Actualizaciones / Reconstrucciones fallan debido a MaxMind DB EOL

Chicos,

Espero que alguien pueda ayudar aquí. No he tenido problemas en más de 12 meses con las actualizaciones de mi foro, que se ejecuta en un contenedor Docker en EC2.

He intentado:

  • Limpieza del launcher, pero no hay problemas con el espacio en disco
  • Último git pull
  • Múltiples reconstrucciones de la aplicación
  • Incluso probé un discourse-setup y estaba pensando en intentar una restauración de la base de datos :frowning:
  • Reinicio del servidor
  • apt-get update; apt-get upgrade

Aquí está el final del registro:

Done compressing all JS files : 88.88 secs
rake aborted!
SocketError: Failed to open TCP connection to geolite.maxmind.com:443 (getaddrinfo: No address associated with hostname)
/var/www/discourse/lib/final_destination.rb:411:in `safe_session'
/var/www/discourse/lib/final_destination.rb:362:in `safe_get'
/var/www/discourse/lib/final_destination.rb:131:in `get'
/var/www/discourse/lib/file_helper.rb:51:in `download'
/var/www/discourse/lib/discourse_ip_info.rb:30:in `mmdb_download'
/var/www/discourse/lib/tasks/assets.rake:220:in `block (3 levels) in <top (required)>'
/var/www/discourse/lib/tasks/assets.rake:219:in `each'
/var/www/discourse/lib/tasks/assets.rake:219:in `block (2 levels) in <top (required)>'

Caused by:

SocketError: getaddrinfo: No address associated with hostname

/var/www/discourse/lib/final_destination.rb:411:in `safe_session'
/var/www/discourse/lib/final_destination.rb:362:in `safe_get'
/var/www/discourse/lib/final_destination.rb:131:in `get'
/var/www/discourse/lib/file_helper.rb:51:in `download'
/var/www/discourse/lib/discourse_ip_info.rb:30:in `mmdb_download'
/var/www/discourse/lib/tasks/assets.rake:220:in `block (3 levels) in <top (required)>'
/var/www/discourse/lib/tasks/assets.rake:219:in `each'
/var/www/discourse/lib/tasks/assets.rake:219:in `block (2 levels) in <top (required)>'

Tasks: TOP => assets:precompile

(See full trace by running task with --trace)

I, [2019-12-30T18:56:27.608998 #1] INFO -- : Downloading MaxMindDB...
Compressing Javascript and Generating Source Maps
I, [2019-12-30T18:56:27.633923 #1] INFO -- : Terminating async processes
I, [2019-12-30T18:56:27.637383 #1] INFO -- : Sending INT to HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/10/bin/postmaster -D /etc/postgresql/10/main pid: 49
I, [2019-12-30T18:56:27.639770 #1] INFO -- : Sending TERM to exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 166
166:signal-handler (1577732187) Received SIGTERM scheduling shutdown...
2019-12-30 18:56:27.639 UTC [49] LOG: received fast shutdown request
2019-12-30 18:56:27.654 UTC [49] LOG: aborting any active transactions
166:M 30 Dec 2019 18:56:27.666 # User requested shutdown...
166:M 30 Dec 2019 18:56:27.694 * Saving the final RDB snapshot before exiting.
2019-12-30 18:56:27.702 UTC [49] LOG: worker process: logical replication launcher (PID 58) exited with exit code 1
2019-12-30 18:56:27.711 UTC [53] LOG: shutting down
2019-12-30 18:56:27.819 UTC [49] LOG: database system is shut down
166:M 30 Dec 2019 18:56:27.885 * DB saved on disk
166:M 30 Dec 2019 18:56:27.886 # Redis is now ready to exit, bye bye...

FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake assets:precompile' failed with return #<Process::Status: pid 507 exit 1>
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"assets_precompile", "cmd"=>["su discourse -c 'bundle exec rake assets:precompile'"]}
fcf17d793c27c4e87616420ead222cc3f4a9fc163f239a5542b1c9a092579b30

** FAILED TO BOOTSTRAP ** por favor, haz scroll hacia arriba y busca mensajes de error anteriores, puede haber más de uno.
./discourse-doctor puede ayudar a diagnosticar el problema.

Realmente espero que alguien pueda arrojar luz sobre esto.

Gracias a todos.

6 Me gusta

En caso de que alguien quiera seguir utilizando los últimos archivos publicados bajo la antigua licencia, los he guardado todos en archive.org.

Todos los archivos son creados por MaxMind y distribuidos bajo la Licencia Internacional Creative Commons Atribución-CompartirIgual 4.0.

URL de archive.org Hash MD5 Cabecera Last-Modified
GeoLite2-City.tar.gz 7ba2c58b4e0eac6c08c6399aebdae26c Tue, 24 Dec 2019 17:46:00 GMT
GeoLite2-Country.tar.gz dc6224c648350d90f344a0c5c3ca5474 Tue, 24 Dec 2019 17:40:42 GMT
GeoLite2-ASN.tar.gz f3c9c5775fd226db6e8098675ff65861 Tue, 24 Dec 2019 14:16:58 GMT
GeoLite2-City-CSV.zip 89e5bf01a970b5668d74cf29a242d546 Tue, 24 Dec 2019 17:45:52 GMT
GeoLite2-Country-CSV.zip f50b518341de54fe48c5e34f13e24e99 Tue, 24 Dec 2019 17:40:41 GMT
GeoLite2-ASN-CSV.zip 463ccd73c104c52547fa50a84fc2f86e Tue, 24 Dec 2019 14:16:58 GMT

Archivo de la página de información (Captura de pantalla)

10 Me gusta

Ahora soportamos la forma oficialmente respaldada de obtener bases de datos, según:

Si deseas obtener actualizaciones regulares de MaxMind, deberás ir a GeoLite sign up | MaxMind para registrar una cuenta y generar una clave de licencia.

Luego, deberás modificar tu contenedor para incluirla en la sección env::

env:
   DISCOURSE_MAXMIND_LICENSE_KEY: ...clave aquí...

La corrección garantiza que ya no haya una bomba de tiempo. Si no tenemos una clave de licencia, nunca intentaremos descargar los archivos.

Estamos discutiendo con MaxMind la posibilidad de incluir las bases de datos actualizadas en nuestras nuevas imágenes base. Hay dos alternativas para quienes realizan autoalojamiento, dependiendo del resultado:

  1. Sin resolución de IP en la página de perfil del usuario ni en la página de administración hasta que agregues una licencia.

  2. Resolución de IP desactualizada durante hasta N días desde que obtuviste una imagen base (es decir, después de ejecutar ./launcher rebuild app).

Es muy probable que la opción (1) sea el resultado para quienes realizan autoalojamiento.

También estamos investigando otras alternativas, pero nuestras opciones están bastante limitadas.

Me opongo firmemente a agregar funcionalidad al núcleo que realice búsquedas de IP mediante un servicio web, ya que eso expone información a terceros. Solo existen dos alternativas reales importantes y ambas requieren registro.

30 Me gusta

@sam Tengo una pequeña solicitud de función: ¿se puede agregar una configuración en el panel de administración para añadir la clave de licencia de MaxMind?

5 Me gusta

Poco probable en el futuro próximo; esto es una configuración global, por sitio en una Multisitio no tiene sentido

6 Me gusta

¿Alguien más está recibiendo este error al intentar registrarse en una cuenta de MaxMind?

Puedo confirmar que pudimos registrarnos en una cuenta sin problemas. Deberás contactar a MaxMind para obtener soporte con problemas de cuenta; aquí no podemos ayudarte con eso.

6 Me gusta

Estoy intentando actualizar de la versión 2.3.8 a la 2.3.9, pero nada funciona.

El error relevante, según puedo ver, es el que se discute en este tema.

rake aborted!
SocketError: Failed to open TCP connection to geolite.maxmind.com:443 (getaddrinfo: Name or service not known)

En mi app.yml he probado los valores 30, 100 y 0 para esa bandera env:

DISCOURSE_REFRESH_MAXMIND_DB_DURING_PRECOMPILE_DAYS: 0

Pero parece que nunca hace ninguna diferencia (me pregunto si se está reconociendo correctamente).

¿Qué más podría intentar?

1 me gusta

Gracias a todos los que trabajaron en la solución rápida durante las últimas semanas. Tuve que hacer lo mismo con Matomo, lo cual fue mucho más doloroso (manual).

Eso me lleva a mi pregunta: ¿Dónde se utiliza exactamente los datos de MaxMind? ¿Solo en casos de administradores que consultan las direcciones IP de los usuarios? ¿Hay algo más en lo que no estoy pensando?

Obviamente ya tengo la cuenta de MM, pero me pregunto si vale la pena el esfuerzo hacerlo con urgencia.

3 Me gusta

Realiza búsquedas geográficas de direcciones IP. He realizado varias instalaciones y actualizaciones recientemente sin configurar una clave de API, y las reconstrucciones funcionan correctamente. (la versión actual es la beta 10)

Además, no es tan difícil obtener una clave para descargar la base de datos.

Espero actualizar discourse-setup para permitir la clave la próxima semana.

4 Me gusta

Correcto, se utiliza para que los administradores consulten las direcciones IP de los usuarios. También para la lista de “dispositivos utilizados recientemente” en las preferencias del usuario y para las alertas de los administradores cuando se detecta un inicio de sesión nuevo en su cuenta desde una ubicación diferente.

3 Me gusta

Perdón por la intromisión, pero quería preguntar si está previsto mantener la opción de desactivar la búsqueda de IP. Me parece que obligar a los administradores a suscribirse a un servicio de terceros no es una buena idea. En mi caso, ya tengo una clave de licencia para otros usos, así que me refiero a esto en un sentido general.

Si no ingresas una clave de licencia, esta se desactivará. Nada obliga a los administradores a configurarla.

Además, solo para evitar cualquier confusión, Discourse nunca envía direcciones IP a un tercero. Discourse descarga una base de datos completa de ubicaciones de IP desde MaxMind y luego realiza la búsqueda internamente.

9 Me gusta

¡Genial, gracias por la aclaración!

4 Me gusta

Revisando esto… esto se retrotrajo a la versión estable.

12 Me gusta

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.