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
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.
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::
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:
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.
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.
@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?
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.
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.
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.
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.
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.