Forum Linux.debian/ubuntu Redmine 1.3.2 + passenger, installé dans un container LXC

Posté par .
Tags : aucun
1
6
sept.
2012

Bonjour à tous,
voici mon probleme, et tu vas voir que toi aussi, tu vas y perdre des cheveux (ou pas).

soit un container LXC avec Ubuntu 12.04 LTS dedans créé par

lxc-create -t ubuntu -n forge

dedans j'ai installé redmine, apache2 et libapache2-mod-passenger
en version packagées par le systeme.

installation avec les options par defaut (redmine avec sqlite etc)

pendant un moment je lancais les machines virtuelles avec

lxc-start -d -n forge

et je n'avais aucun probleme.

puis j'ai voulu mettre ca en ligne avec virt-manager, libvirt, etc.

pas de souci particulier, j'arrete le container, le lance virt-manager, me connecte à lxc:///
creer une nouvelle instance de type lxc, en precisant que le dossier existe deja, et je vais chercher l'arborescence existante.

la machine se lance, j'ai la main dessus au travers du reseau, je vois la machine dans virt-manager, c'est cool

seulement voila,
apache2 se lance bien, mais l'appli redmine au travers de passenger, non.
le seul moyen que j'ai trouvé, et qui est vraiment "sale" car il faut le refaire tous les jours,
c'est de faire un

tail -f /var/log/apache2/error.log

et de rafraichir la page de mon navigateur, et là ca marche

la page de plantage apache/passenger (dont on retrouve la meme chose dans le log apache)

Ruby on Rails application could not be started
These are the possible causes:
There may be a syntax error in the application's code. Please check for such errors and fix them.
A required library may not installed. Please install all libraries that this application requires.
The application may not be properly configured. Please check whether all configuration files are written correctly, fix any
incorrect configurations, and restart this application.
A service that the application relies on (such as the database server or the Ferret search engine server) may not have been
started. Please start that service.
Further information about the error may have been written to the application's log file. Please check it in order to analyse the problem.
Error message:
Permission denied
Exception class:
Errno::EACCES
Application root:
/usr/share/redmine
Backtrace:
# File Line Location
0 /usr/lib/ruby/1.8/phusion_passenger/utils.rb 219 in `write'
1 /usr/lib/ruby/1.8/phusion_passenger/utils.rb 219 in `send'
2 /usr/lib/ruby/1.8/phusion_passenger/utils.rb 219 in `method_missing'
3 /usr/lib/ruby/vendor_ruby/1.8/rubygems/deprecate.rb 62 in `warn'
4 /usr/lib/ruby/vendor_ruby/1.8/rubygems/deprecate.rb 62 in `source_index'
5 /usr/share/redmine/vendor/rails/railties/lib/rails/gem_dependency.rb 21 in `add_frozen_gem_path'
6 /usr/share/redmine/config/boot.rb 52 in `load_initializer'
7 /usr/share/redmine/config/boot.rb 43 in `run'
8 /usr/share/redmine/config/boot.rb 16 in `boot!'
9 /usr/share/redmine/config/boot.rb 119 10 /usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb 36 in `gem_original_require'
11 /usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb 36 in `require'
12 /usr/share/redmine/config/environment.rb 25 13 /usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb 36 in `gem_original_require'
14 /usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb 36 in `require'
15 /usr/lib/ruby/1.8/phusion_passenger/railz/application_spawner.rb 303 in `preload_application'
16 /usr/lib/ruby/1.8/phusion_passenger/railz/application_spawner.rb 252 in `initialize_server'
17 /usr/lib/ruby/1.8/phusion_passenger/utils.rb 255 in `report_app_init_status'
18 /usr/lib/ruby/1.8/phusion_passenger/railz/application_spawner.rb 237 in `initialize_server'
19 /usr/lib/ruby/1.8/phusion_passenger/abstract_server.rb 194 in `start_synchronously'
20 /usr/lib/ruby/1.8/phusion_passenger/abstract_server.rb 163 in `start'
21 /usr/lib/ruby/1.8/phusion_passenger/railz/application_spawner.rb 213 in `start'
22 /usr/lib/ruby/1.8/phusion_passenger/spawn_manager.rb 262 in `spawn_rails_application'
23 /usr/lib/ruby/1.8/phusion_passenger/abstract_server_collection.rb 126 in `lookup_or_add'
24 /usr/lib/ruby/1.8/phusion_passenger/spawn_manager.rb 256 in `spawn_rails_application'
25 /usr/lib/ruby/1.8/phusion_passenger/abstract_server_collection.rb 80 in `synchronize'
26 /usr/lib/ruby/1.8/phusion_passenger/abstract_server_collection.rb 79 in `synchronize'
27 /usr/lib/ruby/1.8/phusion_passenger/spawn_manager.rb 255 in `spawn_rails_application'
28 /usr/lib/ruby/1.8/phusion_passenger/spawn_manager.rb 154 in `spawn_application'
29 /usr/lib/ruby/1.8/phusion_passenger/spawn_manager.rb 287 in `handle_spawn_application'
30 /usr/lib/ruby/1.8/phusion_passenger/abstract_server.rb 352 in `__send__'
31 /usr/lib/ruby/1.8/phusion_passenger/abstract_server.rb 352 in `main_loop'
32 /usr/lib/ruby/1.8/phusion_passenger/abstract_server.rb 196 in `start_synchronously'
33 /usr/lib/phusion_passenger/passenger-spawn-server 61 

j'ai changé les proprietaires du dossier /usr/share/redmine
pour que ca appartienne à www-data puisque passenger semble lancé avec ce userid

  • # Des logs de redmine ?

    Posté par (page perso) . Évalué à  3 .

    Là je ne vois pas, par contre il dit de regarder les logs de redmine car ce serait lui qui fout la merde. Je ne me souviens plus bien mais il me semblait que j'avais un utilisateur redmine, peut-être pour jouer avec des dépôts git je sais plus trop, et ça pourrait être lui qui n'a pas les droits… en tout cas faudrait savoir si il y a quelque chose dans ces logs pour commencer.

    • [^] # Re: Des logs de redmine ?

      Posté par . Évalué à  3 .

      helas il n'y a rien dans les logs de redmine tant que celui-ci n'est pas lancé.

      Comme me l'a fait remarqué un collegue, il semblerait que ce soit passenger qui plante avant d'avoir pu lancer redmine.

      c'est deja une piste, mais on a rien trouvé de plus :(

  • # J'essaye

    Posté par . Évalué à  3 .

    J'y connais rien en ruby, mais vu la backtrace, ça semble être un problème autour de add_frozen_gem_path. En demandant à Google j'ai trouvé :
    http://www.redmine.org/boards/2/topics/5148
    ce qui semble nous orienter vers une histoire de compatibilité de versions. Je suppose que l'erreur que tu as, c'est qu'il essaye d'écrire ce message d'erreur dans un log pour te prévenir de cette méthode dépréciée, mais qu'il ne peut pas (EACCESS), d'où le fait que tu n'as pas de logs non plus. Un problème de permissions dans /var/log alors ?

    En tous cas, pourquoi ça marchait avant et pu maintenant, heu… T'as bien remonté les même partitions dans ton container ? Ou alors à voir avec les capacités des cgroups ? (qui sont utilisés avec libvirt + LXC, forcément, alors que LXC de base ne les requiert pas)

    • [^] # Re: J'essaye

      Posté par . Évalué à  2 .

      en effet pour les cgroups il doit y avoir une difference entre LXC seul et libvirt+lxc
      car avec LXC seul, je ne peux pas faire de montage NFS dans le container,
      alors que je peux le faire en libvirt+lxc.

      le montage NFS c'est pour aller chercher le /home de mes utilisateurs et le /projects pour les projets de la société, donc ca ne gene pas pour redmine.

      pour les droits autour de redmine, j'ai verifié, meme en bourrinant en chmod 777 sur les dossiers :(

      c'est quand meme bizarre qu'un simple tail /var/log/apache2/error.log ou un cat de ce meme fichier suffise à ce que l'appli se lance (juste en rafraichissant la page du navigateur)

      • [^] # Re: J'essaye

        Posté par (page perso) . Évalué à  1 .

        Ca me fait penser à une histoire de buffer ton truc…Tu sais comme quand tu enchaînes les "| grep" en cascade, et que tu ne voit rien arriver alors que tu sais qu'il y a quelques choses qui match en entrée…

        C'est comme s'il y avait un avec le log d'erreur, et quand tu fais ton tail ou ton cat ça le remplie et zou tout se met en branle… Est ce qu'avec un touch ça le fait aussi ?

        Fuse : j'en Use et Abuse !

      • [^] # Re: J'essaye

        Posté par (page perso) . Évalué à  1 .

        Deux petites idées de bidouille en passant :

        • Comme ça me rappel un problème avec python en cgi, si tu l'as mis tu peux virer le module disk_cache ?

        • Si tu met le chargement du module passenger en toute fin de configuration http ça marche mieux ?

        Fuse : j'en Use et Abuse !

        • [^] # Re: J'essaye

          Posté par . Évalué à  2 .

          j'essayerais le touch et l'ordre des modules lundi quand je retournerais au bureau.

  • # j'ai trouvé, mais fallait vraiment y penser.

    Posté par . Évalué à  2 .

    en faisant un watch ls d'un dossier de la machine virtuel se trouve sur le NFS, (comme le tail precedent) passenger demarrait bien.
    d'ailleurs en "bourrinant" sur le F5 ou le Ctrl+R ca finissait aussi par demarrer.

    du coup ca m'a fait posé la question du backend de stockage,
    et apres verification, le container etait stocké sur un partage NFS, mappé dans /var/lib/lxc

    en deplacant le container dans un dossier non-NFS, je n'ai plus de probleme.

    bon c'est moche car du coup si la machine brule, le container disparait avec, mais au moins c'est plus simple pour mes utilisateurs

  • # me revoila, meme probleme avec openvz over NFS

    Posté par . Évalué à  2 .

    le redmine me sort la meme erreur.

    ma machine physique monte le dossier nfs qui contient les container openvz.
    puis les lance.

    j'ai bien acces en ssh à mon container, et ca marche meme plutot bien.

    par contre l'interface web de redmine pose toujours probleme.

    et je ne trouve rien sur internet à ce sujet
    y a vraiment que moi pour avoir ce probleme ?

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.