Aide .. échec de la reconstruction de l'application

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?

J’ai désactivé tout sauf l’essentiel :

      - 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 « J'aime »

@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 « J'aime »

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

1 « J'aime »

@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
## il s'agit du modèle de conteneur Docker Discourse tout-en-un, autonome
##
## Après avoir apporté des modifications à ce fichier, tu DOIS reconstruire
## /var/discourse/launcher rebuild app
##
## SOIS *TRÈS* PRUDENT EN MODIFIANT !
## LES FICHIERS YAML SONT EXTRÊMEMENT SENSIBLES AUX ERREURS D'ESPACEMENT OU D'ALIGNEMENT !
## visite http://www.yamllint.com/ pour valider ce fichier si nécessaire

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  # - "templates/web.ratelimited.template.yml"
  # - "templates/web.socketed.template.yml"
## Décommente ces deux lignes si tu souhaites ajouter Lets Encrypt (https)
# - "templates/web.ssl.template.yml"
# - "templates/web.letsencrypt.ssl.template.yml"

## quels ports TCP/IP ce conteneur doit-il exposer ?
## Si tu veux que Discourse partage un port avec un autre serveur web comme Apache ou nginx,
## consulte https://meta.discourse.org/t/17247 pour plus de détails
expose:
    - "10080:80"   # http
      #- "2222:22"   # http
    # - "443:443" # https

params:
  db_default_text_search_config: "pg_catalog.english"

  ## Définis db_shared_buffers à un maximum de 25 % de la mémoire totale.
  ## sera défini automatiquement par bootstrap en fonction de la RAM détectée, ou tu peux le remplacer
  db_shared_buffers: "2048MB"

  ## peut améliorer les performances de tri, mais augmente l'utilisation de la mémoire par connexion
  #db_work_mem: "40MB"

  ## Quelle révision Git ce conteneur doit-il utiliser ? (par défaut : tests-passed)
  version: stable

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

  ## Combien de requêtes web simultanées sont prises en charge ? Dépend de la mémoire et des cœurs CPU.
  ## sera défini automatiquement par bootstrap en fonction des CPU détectés, ou tu peux le remplacer
  UNICORN_WORKERS: 4

  ## TODO : Le nom de domaine auquel cette instance Discourse répondra
  DISCOURSE_HOSTNAME: www.mcrides.co.nz

  ## Décommente si tu veux que le conteneur soit démarré avec le même
  ## nom d'hôte (option -h) que spécifié ci-dessus (par défaut "$hostname-$config")
  #DOCKER_USE_HOSTNAME: true

  ## TODO : Liste d'emails séparés par des virgules qui seront administrateurs et développeurs
  ## lors de l'inscription initiale, exemple 'user1@example.com,user2@example.com'
  DISCOURSE_DEVELOPER_EMAILS: 'paul@paulwillard.nz'

  ## TODO : Le serveur de messagerie SMTP utilisé pour valider les nouveaux comptes et envoyer des notifications
  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           # (optionnel, par défaut true)

  ## Si tu as ajouté le modèle Lets Encrypt, décommente ci-dessous pour obtenir un certificat SSL gratuit
  #LETSENCRYPT_ACCOUNT_EMAIL: me@example.com

  ## L'adresse CDN pour cette instance Discourse (configurée pour récupérer)
  ## voir https://meta.discourse.org/t/14857 pour plus de détails
  #DISCOURSE_CDN_URL: //discourse-cdn.example.com

## Le conteneur Docker est sans état ; toutes les données sont stockées dans /shared
volumes:
  - volume:
      host: /var/discourse/shared/standalone
      guest: /shared
  - volume:
      host: /var/discourse/shared/standalone/log/var-log
      guest: /var/log

## Les plugins vont ici
## voir https://meta.discourse.org/t/19157 pour plus de détails
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

## Toutes les commandes personnalisées à exécuter après la construction
run:
  - exec: echo "Début des commandes personnalisées"
  ## Si tu veux définir l'adresse email 'From' pour ta première inscription, décommente et modifie :
  ## Après avoir reçu le premier email d'inscription, re-commente la ligne. Elle ne doit être exécutée qu'une seule fois.
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
  - exec: echo "Fin des commandes personnalisées"

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

2 « J'aime »

@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 « J'aime »

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

@tgxworld … perfect !! thanks :heart:

4 « J'aime »

2018-04-04 11:11:29.123 UTC [59] postgres@postgres ERREUR : la base de données "discourse" existe déjà

Résumé
2018-04-04 11:02:11.971 UTC [47] LOG : écoute sur l'adresse IPv4 "0.0.0.0", port 5432
2018-04-04 11:02:11.971 UTC [47] LOG : écoute sur l'adresse IPv6 "::", port 5432
2018-04-04 11:02:11.980 UTC [47] LOG : écoute sur le socket Unix "/var/run/postgresql/.s.PGSQL.5432"
2018-04-04 11:02:12.018 UTC [50] LOG : le système de base de données a été arrêté le 2018-04-04 11:01:03 UTC
2018-04-04 11:02:12.034 UTC [47] LOG : le système de base de données est prêt à accepter les connexions
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 ERREUR : la base de données "discourse" existe déjà
2018-04-04 11:02:17.014 UTC [60] postgres@postgres STATEMENT : CREATE DATABASE discourse;
createdb : échec de la création de la base de données : ERREUR : la base de données "discourse" existe déjà
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 ERREUR : le rôle "discourse" existe déjà
2018-04-04 11:02:17.092 UTC [71] postgres@discourse STATEMENT : create user discourse;
ERREUR : le rôle "discourse" existe déjà
I, [2018-04-04T11:02:17.094738 #15]  INFO -- :

app.yml

Résumé
## Ceci est le modèle de conteneur Docker Discourse tout-en-un, autonome
##
## Après avoir apporté des modifications à ce fichier, vous DEVEZ reconstruire
## /var/discourse/launcher rebuild app
##
## SOYEZ *TRÈS* PRUDENT EN ÉDITANT !
## LES FICHIERS YAML SONT SUPER SUPER SENSIBLES AUX ERREURS D'ESPACEMENT OU D'ALIGNEMENT !
## visitez http://www.yamllint.com/ pour valider ce fichier si nécessaire

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"
## Décommentez ces deux lignes si vous souhaitez ajouter Lets Encrypt (https)
 - "templates/web.ssl.template.yml"
 ##- "templates/web.letsencrypt.ssl.template.yml"
 ##- "templates/web.socketed.template.yml"

## Quels ports TCP/IP ce conteneur doit-il exposer ?
## Si vous souhaitez que Discourse partage un port avec un autre serveur web comme Apache ou nginx,
## consultez https://meta.discourse.org/t/17247 pour plus de détails
expose :
  - "25654:80"   # http
  - "443:443" # https

params :
  db_default_text_search_config : "pg_catalog.russian"

  ## Définissez db_shared_buffers à un maximum de 25 % de la mémoire totale.
  ## sera défini automatiquement par bootstrap en fonction de la RAM détectée, ou vous pouvez le remplacer
  db_shared_buffers : "256MB"

  ## peut améliorer les performances de tri, mais ajoute une utilisation de la mémoire par connexion
  #db_work_mem : "40MB"

  ## Quelle révision Git ce conteneur doit-il utiliser ? (par défaut : tests-passed)
  #version : tests-passed

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

  ## Combien de requêtes web simultanées sont prises en charge ? Dépend de la mémoire et des cœurs CPU.
  ## sera défini automatiquement par bootstrap en fonction des CPU détectés, ou vous pouvez le remplacer
  UNICORN_WORKERS : 2

  ## TODO : Le nom de domaine auquel cette instance Discourse répondra
  DISCOURSE_HOSTNAME : toxu.ru

  ## Décommentez si vous souhaitez que le conteneur soit démarré avec le même
  ## nom d'hôte (-h option) que spécifié ci-dessus (par défaut "$hostname-$config")
  #DOCKER_USE_HOSTNAME : true

  ## TODO : Liste d'e-mails séparés par des virgules qui seront administrateurs et développeurs
  ## lors de l'inscription initiale, par exemple 'user1@example.com,user2@example.com'
  DISCOURSE_DEVELOPER_EMAILS : '***@yandex.ru,***@narod.ru'

  ## TODO : Le serveur de messagerie SMTP utilisé pour valider les nouveaux comptes et envoyer des notifications
  DISCOURSE_SMTP_ADDRESS : ***.ru
  DISCOURSE_SMTP_PORT : 587
  DISCOURSE_SMTP_USER_NAME : ***.ru
  DISCOURSE_SMTP_PASSWORD : ***
  ##DISCOURSE_SMTP_ENABLE_START_TLS : true           # (optionnel, par défaut true)

  ## Si vous avez ajouté le modèle Lets Encrypt, décommentez ci-dessous pour obtenir un certificat SSL gratuit
  ##LETSENCRYPT_ACCOUNT_EMAIL : ***

  ## L'adresse CDN pour cette instance Discourse (configurée pour récupérer)
  ## consultez https://meta.discourse.org/t/14857 pour plus de détails
  #DISCOURSE_CDN_URL : //discourse-cdn.example.com

## Le conteneur Docker est sans état ; toutes les données sont stockées dans /shared
volumes :
  - volume :
      host : /var/discourse/shared/standalone
      guest : /shared
  - volume :
      host : /var/discourse/shared/standalone/log/var-log
      guest : /var/log

## Les plugins vont ici
## consultez https://meta.discourse.org/t/19157 pour plus de détails
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

## Toutes les commandes personnalisées à exécuter après la construction
run :
  - exec : echo "Début des commandes personnalisées"
  ## Si vous souhaitez définir l'adresse e-mail 'From' pour votre première inscription, décommentez et modifiez :
  ## Après avoir reçu le premier e-mail d'inscription, re-commentez la ligne. Elle ne doit être exécutée qu'une seule fois.
  ## - exec : rails r "SiteSetting.notification_email='***@yandex.ru'"
  - exec : echo "Fin des commandes personnalisées"

Alors, dois-je supprimer la base de données discourse ? Je ne comprends pas.

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, normalement 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 : Aucun fichier ou répertoire de ce type

Can you provide us with the full log? Thank you

1 « J'aime »