Ayuda .. falla al reconstruir la app

help … I did a ./launcher rebuild app today, as I have many times before.
got an error …
any ideas? looks like something is up with ruby libraries ?

I, [2018-04-04T07:06:26.498684 #16]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
rake aborted!
LoadError: /var/www/discourse/vendor/bundle/ruby/2.4.0/gems/mini_racer-0.1.11/lib/mini_racer_extension.so: undefined symbol: _ZTIN2v811ArrayBuffer9AllocatorE - /var/www/discourse/vendor/bundle/ruby/2.4.0/gems/mini_racer-0.1.11/lib/mini_racer_extension.so
/var/www/discourse/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:292:in `require'
/var/www/discourse/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:292:in `block in require'
/var/www/discourse/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:258:in `load_dependency'
/var/www/discourse/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:292:in `require'
/var/www/discourse/vendor/bundle/ruby/2.4.0/gems/mini_racer-0.1.11/lib/mini_racer.rb:2:in `<top (required)>'
/var/www/discourse/config/application.rb:22:in `<top (required)>'
/var/www/discourse/Rakefile:5:in `require'
/var/www/discourse/Rakefile:5:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/2.4.0/gems/rake-12.1.0/exe/rake:27:in `<top (required)>'
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'
(See full trace by running task with --trace)
I, [2018-04-04T07:06:34.391071 #16]  INFO -- :
I, [2018-04-04T07:06:34.391568 #16]  INFO -- : Terminating async processes
I, [2018-04-04T07:06:34.391658 #16]  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: 47
I, [2018-04-04T07:06:34.391753 #16]  INFO -- : Sending TERM to exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 163
2018-04-04 07:06:34.391 UTC [47] LOG:  received fast shutdown request
163:signal-handler (1522825594) Received SIGTERM scheduling shutdown...
2018-04-04 07:06:34.399 UTC [47] LOG:  aborting any active transactions
2018-04-04 07:06:34.403 UTC [47] LOG:  worker process: logical replication launcher (PID 56) exited with exit code 1
2018-04-04 07:06:34.404 UTC [51] LOG:  shutting down
163:M 04 Apr 07:06:34.427 # User requested shutdown...
163:M 04 Apr 07:06:34.427 * Saving the final RDB snapshot before exiting.
2018-04-04 07:06:34.478 UTC [47] LOG:  database system is shut down
163:M 04 Apr 07:06:34.479 * DB saved on disk
163:M 04 Apr 07:06:34.479 # Redis is now ready to exit, bye bye...


FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 14253 exit 1>
Location of failure: /pups/lib/pups/exec_command.rb:108:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"bundle_exec", "cmd"=>["su discourse -c 'bundle install --deployment --verbose --without test --without development --retry 3 --jobs 4'", "su discourse -c 'bundle exec rake db:migrate'", "su discourse -c 'bundle exec rake assets:precompile'"]}
2f3c9493bf73510eacd5441b9b5a42b09def51babd56ee00a35941442da2cc5e
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one

Hey Paul,

Are you using any custom plugin?

He desactivado todo excepto lo básico:

      - git clone https://github.com/discourse/docker_manager.git
        # - git clone https://github.com/davidtaylorhq/discourse-whos-online.git
      - git clone https://github.com/discourse/discourse-spoiler-alert.git
      - git clone https://github.com/discourse/discourse-cakeday.git
        #- git clone https://github.com/angusmcleod/discourse-events.git
        #- git clone https://github.com/angusmcleod/discourse-locations.git
        # - git clone https://github.com/discourse/discourse-tooltips.git
        # - git clone https://github.com/discourse/discourse-push-notifications.git
        # - git clone https://github.com/communiteq/discourse-sitemap.git

is there an installation log file? that might have more info?

@tgxworld … is this related ?
I did a git pull, rebuild, at the end the output told me to rebuild again to complete migration.
Now it won’t complete

LoadError: /var/www/discourse/vendor/bundle/ruby/2.4.0/gems/mini_racer-0.1.11/lib/mini_racer_extension.so: undefined symbol: _ZTIN2v811ArrayBuffer9AllocatorE - /var/www/discourse/vendor/bundle/ruby/2.4.0/gems/mini_racer-0.1.11/lib/mini_racer_extension.so

Looks like an error in one of the javascript files.

Can you try disabling all the plugins and adding them back one by one?

1 me gusta

@zogstrip including dockmanager?
I tried disabling everything except docker manager, cakeday, and spoiler (pretty basic stuff) and still the same error

Can you share the whole log? There might be something else going on here.

https://terminaladdict.com/discourse_failed_build.txt

1 me gusta

Seems like you’re getting rate limited by rubygems. I would wait a few minutes and try again later.

1 me gusta

@zogstrip … sorry, don’t understand :confused: … It’s my host, can I tune something ?

Can you also post your app.yml but do remove any sensitive fields before doing so.

There’s unfortunately nothing you can do except wait for the rate limit to be cleared.

root@companion-cube:/var/discourse $ cat containers/app.yml
## este es la plantilla de contenedor Docker todo-en-uno y autónomo de Discourse
##
## Después de realizar cambios en este archivo, DEBES reconstruir
## /var/discourse/launcher rebuild app
##
## ¡TEN *MUCHO* CUIDADO AL EDITAR!
## ¡LOS ARCHIVOS YAML SON EXTREMADAMENTE SENSIBLES A ERRORES EN LOS ESPACIOS EN BLANCO O LA ALINEACIÓN!
## visita http://www.yamllint.com/ para validar este archivo según sea necesario

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  # - "templates/web.ratelimited.template.yml"
  # - "templates/web.socketed.template.yml"
## Descomenta estas dos líneas si deseas agregar Lets Encrypt (https)
# - "templates/web.ssl.template.yml"
# - "templates/web.letsencrypt.ssl.template.yml"

## ¿Qué puertos TCP/IP debe exponer este contenedor?
## Si deseas que Discourse comparta un puerto con otro servidor web como Apache o nginx,
## consulta https://meta.discourse.org/t/17247 para obtener detalles
expose:
    - "10080:80"   # http
      #- "2222:22"   # http
    # - "443:443" # https

params:
  db_default_text_search_config: "pg_catalog.english"

  ## Establece db_shared_buffers en un máximo del 25% de la memoria total.
  ## se establecerá automáticamente durante el arranque según la RAM detectada, o puedes sobrescribirlo
  db_shared_buffers: "2048MB"

  ## puede mejorar el rendimiento de ordenación, pero añade uso de memoria por conexión
  #db_work_mem: "40MB"

  ## ¿Qué revisión de Git debe usar este contenedor? (predeterminado: tests-passed)
  version: stable

env:
  LANG: en_US.UTF-8
  # DISCOURSE_DEFAULT_LOCALE: en

  ## ¿Cuántas solicitudes web simultáneas se admiten? Depende de la memoria y los núcleos de CPU.
  ## se establecerá automáticamente durante el arranque según los CPUs detectados, o puedes sobrescribirlo
  UNICORN_WORKERS: 4

  ## TODO: El nombre de dominio al que responderá esta instancia de Discourse
  DISCOURSE_HOSTNAME: www.mcrides.co.nz

  ## Descomenta si deseas que el contenedor se inicie con el mismo
  ## nombre de host (opción -h) especificado anteriormente (predeterminado "$hostname-$config")
  #DOCKER_USE_HOSTNAME: true

  ## TODO: Lista de correos electrónicos separados por comas que serán administradores y desarrolladores
  ## en el registro inicial, ejemplo 'usuario1@ejemplo.com,usuario2@ejemplo.com'
  DISCOURSE_DEVELOPER_EMAILS: 'paul@paulwillard.nz'

  ## TODO: El servidor de correo SMTP utilizado para validar nuevas cuentas y enviar notificaciones
  DISCOURSE_SMTP_ADDRESS: 'smtp.address.com'
  DISCOURSE_SMTP_AUTHENTICATION: 'plain'
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: 'secretUser@address.co.nz'
  DISCOURSE_SMTP_PASSWORD: 'myPasswordIsNotThis'
  DISCOURSE_SMTP_ENABLE_START_TLS: true           # (opcional, predeterminado true)

  ## Si agregaste la plantilla de Lets Encrypt, descomenta abajo para obtener un certificado SSL gratuito
  #LETSENCRYPT_ACCOUNT_EMAIL: me@example.com

  ## La dirección CDN para esta instancia de Discourse (configurada para extraer)
  ## consulta https://meta.discourse.org/t/14857 para obtener detalles
  #DISCOURSE_CDN_URL: //discourse-cdn.example.com

## El contenedor de Docker no tiene estado; todos los datos se almacenan en /shared
volumes:
  - volume:
      host: /var/discourse/shared/standalone
      guest: /shared
  - volume:
      host: /var/discourse/shared/standalone/log/var-log
      guest: /var/log

## Los plugins van aquí
## consulta https://meta.discourse.org/t/19157 para obtener detalles
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/davidtaylorhq/discourse-whos-online.git
          - git clone https://github.com/discourse/discourse-spoiler-alert.git
          - git clone https://github.com/discourse/discourse-cakeday.git
          - git clone https://github.com/angusmcleod/discourse-events.git
          - git clone https://github.com/angusmcleod/discourse-locations.git
          - git clone https://github.com/discourse/discourse-tooltips.git
          - git clone https://github.com/discourse/discourse-push-notifications.git
          - git clone https://github.com/communiteq/discourse-sitemap.git

## Cualquier comando personalizado para ejecutar después de la construcción
run:
  - exec: echo "Inicio de comandos personalizados"
  ## Si deseas establecer la dirección de correo electrónico 'De' para tu primer registro, descomenta y cambia:
  ## Después de recibir el primer correo de registro, vuelve a comentar la línea. Solo necesita ejecutarse una vez.
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
  - exec: echo "Fin de comandos personalizados"

Ahh you’re on the stable branch…we might be missing a backport or smth.

2 Me gusta

@TerminalAddict Try rebuilding again :slight_smile:

I had to backport Update libv8 from 5.9 to 6.3 · discourse/discourse@c2ff0f1 · GitHub to stable

7 Me gusta

rebuilding now, looks good so far … will report back in 5 mins

@tgxworld … perfect !! thanks :heart:

4 Me gusta

2018-04-04 11:11:29.123 UTC [59] postgres@postgres ERROR: database "discourse" ya existe

Resumen
2018-04-04 11:02:11.971 UTC [47] LOG:  escuchando en dirección IPv4 "0.0.0.0", puerto 5432
2018-04-04 11:02:11.971 UTC [47] LOG:  escuchando en dirección IPv6 "::", puerto 5432
2018-04-04 11:02:11.980 UTC [47] LOG:  escuchando en socket Unix "/var/run/postgresql/.s.PGSQL.5432"
2018-04-04 11:02:12.018 UTC [50] LOG:  el sistema de base de datos se apagó el 2018-04-04 11:01:03 UTC
2018-04-04 11:02:12.034 UTC [47] LOG:  el sistema de base de datos está listo para aceptar conexiones
I, [2018-04-04T11:02:16.937951 #15]  INFO -- :
I, [2018-04-04T11:02:16.938359 #15]  INFO -- : > su postgres -c 'createdb discourse' || true
2018-04-04 11:02:17.014 UTC [60] postgres@postgres ERROR:  database "discourse" ya existe
2018-04-04 11:02:17.014 UTC [60] postgres@postgres STATEMENT:  CREATE DATABASE discourse;
createdb: la creación de la base de datos falló: ERROR:  database "discourse" ya existe
I, [2018-04-04T11:02:17.016859 #15]  INFO -- :
I, [2018-04-04T11:02:17.017184 #15]  INFO -- : > su postgres -c 'psql discourse -c "create user discours                                        e;"' || true
2018-04-04 11:02:17.092 UTC [71] postgres@discourse ERROR:  el rol "discourse" ya existe
2018-04-04 11:02:17.092 UTC [71] postgres@discourse STATEMENT:  create user discourse;
ERROR:  el rol "discourse" ya existe
I, [2018-04-04T11:02:17.094738 #15]  INFO -- :

app.yml

Resumen
## esta es la plantilla del contenedor Docker todo en uno y autónomo de Discourse
##
## Después de realizar cambios en este archivo, DEBES reconstruir
## /var/discourse/launcher rebuild app
##
## ¡TEN *MUCHO* CUIDADO AL EDITAR!
## ¡LOS ARCHIVOS YAML SON EXTREMADAMENTE SENSIBLES A ERRORES EN ESPACIOS EN BLANCO O ALINEACIÓN!
## visita http://www.yamllint.com/ para validar este archivo según sea necesario

templates:
 - "templates/cron.template.yml"
 - "templates/postgres.template.yml"
 - "templates/redis.template.yml"
 - "templates/sshd.template.yml"
 - "templates/web.template.yml"
# - "templates/web.ratelimited.template.yml"
## Descomenta estas dos líneas si deseas agregar Lets Encrypt (https)
 - "templates/web.ssl.template.yml"
 ##- "templates/web.letsencrypt.ssl.template.yml"
 ##- "templates/web.socketed.template.yml"

## ¿Qué puertos TCP/IP debe exponer este contenedor?
## Si deseas que Discourse comparta un puerto con otro servidor web como Apache o nginx,
## consulta https://meta.discourse.org/t/17247 para más detalles
expose:
  - "25654:80"   # http
  - "443:443" # https

params:
  db_default_text_search_config: "pg_catalog.russian"

  ## Establece db_shared_buffers a un máximo del 25% de la memoria total.
  ## se establecerá automáticamente durante el arranque según la RAM detectada, o puedes sobrescribirlo
  db_shared_buffers: "256MB"

  ## puede mejorar el rendimiento de ordenación, pero aumenta el uso de memoria por conexión
  #db_work_mem: "40MB"

  ## ¿Qué revisión de Git debe usar este contenedor? (predeterminado: tests-passed)
  #version: tests-passed

env:
  LANG: en_US.UTF-8
  # DISCOURSE_DEFAULT_LOCALE: en

  ## ¿Cuántas solicitudes web simultáneas se admiten? Depende de la memoria y los núcleos de CPU.
  ## se establecerá automáticamente durante el arranque según los CPUs detectados, o puedes sobrescribirlo
  UNICORN_WORKERS: 2

  ## TODO: El nombre de dominio al que responderá esta instancia de Discourse
  DISCOURSE_HOSTNAME: toxu.ru

  ## Descomenta si deseas que el contenedor se inicie con el mismo
  ## nombre de host (opción -h) que se especificó anteriormente (predeterminado "$hostname-$config")
  #DOCKER_USE_HOSTNAME: true

  ## TODO: Lista de correos electrónicos separados por comas que serán administradores y desarrolladores
  ## en el registro inicial, ejemplo 'user1@example.com,user2@example.com'
  DISCOURSE_DEVELOPER_EMAILS: '***@yandex.ru,***@narod.ru'

  ## TODO: El servidor de correo SMTP utilizado para validar nuevas cuentas y enviar notificaciones
  DISCOURSE_SMTP_ADDRESS: ***.ru
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: ***.ru
  DISCOURSE_SMTP_PASSWORD: ***
  ##DISCOURSE_SMTP_ENABLE_START_TLS: true           # (opcional, predeterminado true)

  ## Si agregaste la plantilla de Lets Encrypt, descomenta a continuación para obtener un certificado SSL gratuito
  ##LETSENCRYPT_ACCOUNT_EMAIL: ***

  ## La dirección CDN para esta instancia de Discourse (configurada para extraer)
  ## consulta https://meta.discourse.org/t/14857 para más detalles
  #DISCOURSE_CDN_URL: //discourse-cdn.example.com

## El contenedor Docker es sin estado; todos los datos se almacenan en /shared
volumes:
  - volume:
      host: /var/discourse/shared/standalone
      guest: /shared
  - volume:
      host: /var/discourse/shared/standalone/log/var-log
      guest: /var/log

## Los plugins van aquí
## consulta https://meta.discourse.org/t/19157 para más detalles
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-no-bump.git
          - git clone https://github.com/discourse/discourse-solved.git
          - git clone https://github.com/discourse/discourse-push-notifications.git
          - git clone https://github.com/communiteq/discourse-sitemap.git
          - git clone https://github.com/discourse/discourse-spoiler-alert.git
          - git clone https://github.com/discourse/discourse-cakeday.git

## Cualquier comando personalizado para ejecutar después de la construcción
run:
  - exec: echo "Inicio de comandos personalizados"
  ## Si deseas establecer la dirección de correo electrónico 'De' para tu primer registro, descomenta y cambia:
  ## Después de recibir el primer correo electrónico de registro, vuelve a comentar la línea. Solo necesita ejecutarse una vez.
  ## - exec: rails r "SiteSetting.notification_email='***@yandex.ru'"
  - exec: echo "Fin de comandos personalizados"

Entonces, ¿debo eliminar la base de datos de Discourse? No lo entiendo.

root@bigtor:/var/discourse# ./launcher enter app
root@bigtor-app:/var/www/discourse# cd /shared/postgres_backup
root@bigtor-app:/shared/postgres_backup# sv stop unicorn
ok: down: unicorn: 0s, normalmente up
root@bigtor-app:/shared/postgres_backup# sudo -iu postgres dropdb discourse
root@bigtor-app:/shared/postgres_backup# sudo -iu postgres createdb discourse
root@bigtor-app:/shared/postgres_backup# sudo -iu postgres psql discourse < backup.db
bash: backup.db: No existe el archivo o el directorio

Can you provide us with the full log? Thank you

1 me gusta