Problème lors de l'installation (Ruby)

Bonjour, cela fait quelques jours que j’essaye de trouver la solution à mon problème sans succès malgré de multiples recherches.

Lors de l’installation, je fais toujours face à une erreur de compilation Ruby concernant des « Instructions illégales », je poste le debug sur pastebin car très verbose : https://pastebin.com/FdbnUxSw

C’est une machine virtuelle sur Proxmox (virtualisation QEMU-KVM) avec les spécifications suivantes :

  • Debian 10 (Buster)
  • 2 vCPU
  • 4 Go RAM

J’ai procédé à l’installation de Docker de manière manuelle avec les dépôts pour Debian (le script prepare-vps utilise les dépôts d’Ubuntu, donc je me suis adapté pour mon environnement), j’ai installé docker-compose via le lien du script mais je doute que mon problème puisse venir de cela.

J’ai aussi essayé via Ubuntu Server 20.04 mais le problème est similaire. Je m’en remets donc à vous pour savoir si j’oublie quelques choses lors de l’installation ou si cela est dû à mon choix de virtualisation.

Bonjour à tous.tes !
Exactement le même problème que @AZiiDok !

J’ai essayé depuis une VM Debian 10 puis une Ubuntu 20.04 tout comme @AZiiDok au dessus (je me serais évité la ubuntu si j’avais vu ce message avant…) et j’ai là même violation que décrite dans le pastebin précédent…

Je met le mien ici également https://pastebin.com/tNArdxsh

Avez vous une idée ?

PS : Quand on arrive sur le nom de domaine définit on a un « We’re sorry, but something went wrong. »
De plus dans les logs l’erreur collée dans le pastebin est re-affichée toutes les ~5s.

Merci d’avance ! :slight_smile:

C’est un plaisir et un regret à la fois de constater que je ne suis pas le seul dans cette situation (@TooT).

En ce qui me concerne, le problème persiste de mon côté et je ne parviens toujours pas à le solutionner malgré certaines pistes qui n’ont abouti à rien.

Je réactualise le post car le problème est toujours d’actualité …

J’avais patiemment attendu une mise à jour pour éliminer ce problème mais cela persiste, une idée ?

Bonjour à tous les deux,

Je pense que votre problème est lié à ce bug : Error: terminated by SIGABRT (core dumped); not expected · Issue #270 · sleede/fab-manager · GitHub
Il s’agit vraisemblablement d’un problème lié à une librairie externe que nous utilisons (sassc) qui a un problème avec l’architecture de certains processeurs, particulièrement avec les VM.

Je vais essayer de mettre à jour sassc dans la prochaine version de fab-manager, en espérant que cela résolve le problème.

Bonne journée,

Salut,

La version 5.1.10 publié à l’instant corrige le problème. Pour les installations plus anciennes, un correctif a également été publié pour la version 4 de Fab-manager : il vous faut mettre à jour à la version 4.7.14 pour bénéficier du correctif.

Si vous envisagez de mettre à jour à la dernière version (>= 5.0.0) depuis un Fab-manager v4 ou plus ancien, vous devez impérativement mettre à jour à la version 4.7.14 avant de mettre à jour à la dernière version.

Bonne journée,

Bonjour Sylvain,

Parfait, je n’ai plus l’erreur de la lib Ruby utilisé, par contre :sweat_smile:

J’ai un problème de compilation yarn qui est la suivante :

yarn install v1.22.10
[1/4] Resolving packages...
[2/4] Fetching packages...
error Couldn't find the binary git
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
  AuthProvider Load (0.4ms)  SELECT  "auth_providers".* FROM "auth_providers" WHERE "auth_providers"."status" = $1 LIMIT $2  [["status", "active"], ["LIMIT", 1]]
  AuthProvider Load (0.3ms)  SELECT  "auth_providers".* FROM "auth_providers" WHERE "auth_providers"."status" = $1 LIMIT $2  [["status", "active"], ["LIMIT", 1]]
2021-10-04T12:53:38.472Z pid=1 tid=osxhqxrzx middleware=SidekiqUniqueJobs::Client::Middleware unique_digest=uniquejobs:86311f9a63c73dba95cf40e8c8a07b12 INFO: Adding dead VersionCheckWorker job 0bd298600b7faa9cd02c6217
  AuthProvider Load (0.5ms)  SELECT  "auth_providers".* FROM "auth_providers" WHERE "auth_providers"."status" = $1 LIMIT $2  [["status", "active"], ["LIMIT", 1]]
  AuthProvider Load (0.4ms)  SELECT  "auth_providers".* FROM "auth_providers" WHERE "auth_providers"."status" = $1 LIMIT $2  [["status", "active"], ["LIMIT", 1]]
Compiling...
Compilation failed:
DEPRECATION WARNING: Using / for division is deprecated and will be removed in Dart Sass 2.0.0.

Recommendation: math.div($num, $num * 0 + 1)

More info and automated migrator: https://sass-lang.com/d/slash-div

   ╷
23 │   @return $num / ($num * 0 + 1);
   │           ^^^^^^^^^^^^^^^^^^^^^
   ╵
    app/frontend/src/stylesheets/app.functions.scss 23:11             strip-unit()
    app/frontend/src/stylesheets/app.functions.scss 28:11             convert-to-rem()
    app/frontend/src/stylesheets/app.functions.scss 61:13             rem-calc()
    app/frontend/src/stylesheets/bootstrap_and_overrides.scss 121:16  @import
    app/frontend/src/stylesheets/application.scss 2:9                 @import
    app/frontend/packs/application.scss 18:9                          root stylesheet

DEPRECATION WARNING: Using / for division is deprecated and will be removed in Dart Sass 2.0.0.

Recommendation: math.div(strip-unit($value), strip-unit($base-value))

More info and automated migrator: https://sass-lang.com/d/slash-div

   ╷
28 │   $value: strip-unit($value) / strip-unit($base-value) * 1rem;
   │           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   ╵
    app/frontend/src/stylesheets/app.functions.scss 28:11             convert-to-rem()
    app/frontend/src/stylesheets/app.functions.scss 61:13             rem-calc()
    app/frontend/src/stylesheets/bootstrap_and_overrides.scss 121:16  @import
    app/frontend/src/stylesheets/application.scss 2:9                 @import
    app/frontend/packs/application.scss 18:9                          root stylesheet

DEPRECATION WARNING: Using / for division is deprecated and will be removed in Dart Sass 2.0.0.

Recommendation: math.div($line-height-computed, 2)

More info and automated migrator: https://sass-lang.com/d/slash-div

   ╷
28 │   margin-bottom: ($line-height-computed / 2);
   │                   ^^^^^^^^^^^^^^^^^^^^^^^^^
   ╵
    node_modules/bootstrap-sass/assets/stylesheets/bootstrap/_type.scss 28:19  @import
    app/frontend/src/stylesheets/bootstrap_and_overrides.scss 1075:9           @import
    app/frontend/src/stylesheets/application.scss 2:9                          @import
    app/frontend/packs/application.scss 18:9                                   root stylesheet

DEPRECATION WARNING: Using / for division is deprecated and will be removed in Dart Sass 2.0.0.

Recommendation: math.div($line-height-computed, 2)

More info and automated migrator: https://sass-lang.com/d/slash-div

   ╷
38 │   margin-top: ($line-height-computed / 2);
   │                ^^^^^^^^^^^^^^^^^^^^^^^^^
   ╵
    node_modules/bootstrap-sass/assets/stylesheets/bootstrap/_type.scss 38:16  @import
    app/frontend/src/stylesheets/bootstrap_and_overrides.scss 1075:9           @import
    app/frontend/src/stylesheets/application.scss 2:9                          @import
    app/frontend/packs/application.scss 18:9                                   root stylesheet

DEPRECATION WARNING: Using / for division is deprecated and will be removed in Dart Sass 2.0.0.

Recommendation: math.div($line-height-computed, 2)

More info and automated migrator: https://sass-lang.com/d/slash-div

   ╷
39 │   margin-bottom: ($line-height-computed / 2);
   │                   ^^^^^^^^^^^^^^^^^^^^^^^^^
   ╵
    node_modules/bootstrap-sass/assets/stylesheets/bootstrap/_type.scss 39:19  @import
    app/frontend/src/stylesheets/bootstrap_and_overrides.scss 1075:9           @import
    app/frontend/src/stylesheets/application.scss 2:9                          @import
    app/frontend/packs/application.scss 18:9                                   root stylesheet

WARNING: 34 repetitive deprecation warnings omitted.

Je ne sais pas si cela est une cause à effet mais en tout cas, je tombe sur le message d’erreur Web : « We’re sorry, but something went wrong. »

Hello, aucune erreur dans les logs que tu rapportes, seulement des warning qu’on peut ignorer sans souci. Pour ton problème, il faut que tu regardes dans l’ordre :

  • le résultat de docker-compose ps
  • la présence de messages d’erreurs à la fin du fichier log/app-stdout.log
  • la présence d’erreurs dans log/app-stderr.log

Je m’excuse, j’avais vu ‹ Compilation Failed › du coup je l’ai interprété en erreur

Finalement, j’ai bien une erreur dans log/app-stdout.log

Completed 500 Internal Server Error in 59ms (ActiveRecord: 19.3ms | Elasticsearch: 0.0ms)
  
ActionView::Template::Error (Webpacker can't find application.css in /usr/src/app/public/packs/manifest.json. Possible causes:
1. You want to set webpacker.yml value of compile to true for your environment
   unless you are using the `webpack -w` or the webpack-dev-server.
2. webpack has not yet re-run to reflect updates.
3. You have misconfigured Webpacker's config/webpacker.yml file.
4. Your webpack configuration is not creating a manifest.
Your manifest contains:
{
}
):
    67:       Fablab.sessionTours = [];
    68:   </script>
    69: 
    70:   <%= stylesheet_packs_with_chunks_tag 'application', media: 'all' %>
    71:   <%= stylesheet_packs_with_chunks_tag 'plugins', media: 'all' %>
    72:   <%= stylesheet_packs_with_chunks_tag 'printer', media: 'print' %>
    73:   <% unless Stylesheet.theme.nil? %>
  
app/views/application/index.html.erb:70:in `_app_views_application_index_html_erb__2432968987692877008_70352271976020'
app/controllers/application_controller.rb:69:in `switch_locale'

Il semblerait que tes assets n’ait pas été compilés.
Tu peux le faire en lançant

docker-compose exec fabmanager bundle exec rails assets:precompile

La recompilation n’avait pas fonctionné mais j’avais constaté un problème de RAM : en basculant de 2 Go à 4 Go, la compilation c’est très bien faite dès l’installation.

J’ai désormais un FabManager fonctionnel, toutefois je me pose une dernière petite question (hors sujet à ce problème) :

Comment puis-je changer le « default mail from » qui est par défaut noreply@fab-manager.com par une adresse mail exacte ? J’ai essayé dans config/env avec « DEFAULT_MAIL_FROM=Fab Manager noreply@mondomaine.fr » mais la variable ne semble pas prise en compte car je vois au travers des logs SMTP que les envois essayent toujours avec « noreply@fab-manager.com » (rejeté du coup)

1 « J'aime »

Cool, merci pour ton retour, je n’aurais pas pensé que 2 Go de RAM étaient insuffisant pour compiler les assets. Tu avais du swap en parallèle ou pas ?

Je vois que dans la documentation on a mis

You will need at least 2GB of addressable memory (RAM + swap) to install and use Fab-manager.

Il faut peut-être qu’on monte nos recommandations à 4 Go du coup ?

Pour le défaut mail from, ça se configure dans l’interface, connecté comme admin : Personnalisation > Général > Notifications > Adresse de l’expéditeur

La machine virtuelle (Debian 11) qui héberge le Fab-Manager se trouve sur un hyperviseur Proxmox avec du stockage partagé-répliqué CEPH. Je ne souhaitais pas mettre de swap (Aie les SSD et les IO avec du swap répliqué en temps réel …) et valoriser une véritable ressource en mémoire vive, donc dans mon échec de compilation : 2 Go de RAM et 0 swap. J’ai constaté l’insuffisance de mémoire vive avec un htop en second terminal, je suis donc monté directement à 4 Go et j’ai pu faire tout l’installation sans encombre.

Malheureusement, je n’ai plus d’accès sur la panneau d’administration car ce compte admin demande de se faire valider par mail, et justement, c’est là tout mon problème :sweat_smile:

L’installation est devenu un véritable jeu d’enfant, je vais reprendre une nouvelle installation de Debian et je vais refaire le tout. Je vous remercie en tout cas de tout l’aide apportée pour mettre à bien mon système :grin:

Merci pour ta réponse, je vais noter d’augmenter la config requise :wink: (et oui, le swap sur ssd, je confirme : ça te flingue un disque :sweat_smile:).

Pour ton problème d’accès admin, tu peux désactiver la validation par mail depuis la console :

docker-compose exec fabmanager bundle exec rails console

puis

Setting.set('confirmation_required', false)

Depuis la console, tu peux même changer l’adresse d’expédition des mails :

Setting.set('email_from', 'noreply@example.com')