Question

J'ai installé Ruby 1.9.1 (p234) sur un serveur Ubuntu. J'essaie de déployer une application Rails dont les éditeurs Rails 2.3-stable sur Apache 2.2 / Passenger 2.2.5 sont stables.

Les requêtes GET fonctionnent correctement, les requêtes POST sont immédiatement interrompues avec l'entrée de journal suivante:

Processing UsersController#new (for 80.203.77.44 at 2009-10-24 20:54:55) [GET]
  Parameters: {"controller"=>"users", "action"=>"new"}
Rendering template within layouts/application
Rendering users/new
Completed in 23ms (View: 20, DB: 0) | 200 OK [http://myapp/user/new]
/!\ FAILSAFE /!\  2009-10-24 20:55:01 +0200
  Status: 500 Internal Server Error
  closed stream
    /usr/local/lib/ruby/gems/1.9.1/gems/passenger-2.2.5/vendor/rack-1.0.0-git/lib/rack/rewindable_input.rb:86:in make_rewindable'
    /usr/local/lib/ruby/gems/1.9.1/gems/passenger-2.2.5/vendor/rack-1.0.0-git/lib/rack/rewindable_input.rb:26:inread'
    /usr/local/lib/ruby/gems/1.9.1/gems/passenger-2.2.5/vendor/rack-1.0.0-git/lib/rack/request.rb:136:in POST'
    /usr/local/lib/ruby/gems/1.9.1/gems/passenger-2.2.5/vendor/rack-1.0.0-git/lib/rack/methodoverride.rb:15:incall'
    /var/www/myapp/app/releases/20091021213913/vendor/rails/actionpack/lib/action_controller/params_parser.rb:15:in call'
    /var/www/myapp/app/releases/20091021213913/vendor/rails/actionpack/lib/action_controller/session/cookie_store.rb:93:incall'
    /var/www/myapp/app/releases/20091021213913/vendor/rails/actionpack/lib/action_controller/failsafe.rb:26:in call'
    /usr/local/lib/ruby/gems/1.9.1/gems/passenger-2.2.5/vendor/rack-1.0.0-git/lib/rack/lock.rb:11:inblock in call'
    :8:in synchronize'
    /usr/local/lib/ruby/gems/1.9.1/gems/passenger-2.2.5/vendor/rack-1.0.0-git/lib/rack/lock.rb:11:incall'
    /var/www/myapp/app/releases/20091021213913/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:106:in call'
    /usr/local/lib/ruby/gems/1.9.1/gems/passenger-2.2.5/lib/phusion_passenger/rack/request_handler.rb:95:inprocess_request'
    /usr/local/lib/ruby/gems/1.9.1/gems/passenger-2.2.5/lib/phusion_passenger/abstract_request_handler.rb:207:in main_loop'
    /usr/local/lib/ruby/gems/1.9.1/gems/passenger-2.2.5/lib/phusion_passenger/railz/application_spawner.rb:378:instart_request_handler'
    /usr/local/lib/ruby/gems/1.9.1/gems/passenger-2.2.5/lib/phusion_passenger/railz/application_spawner.rb:336:in block in handle_spawn_application'
    /usr/local/lib/ruby/gems/1.9.1/gems/passenger-2.2.5/lib/phusion_passenger/utils.rb:183:insafe_fork'
    /usr/local/lib/ruby/gems/1.9.1/gems/passenger-2.2.5/lib/phusion_passenger/railz/application_spawner.rb:334:in `handle_spawn_application'

... et puis certains.

J'ai lu et trouvé ceci: http://blog.labnotes.org/2009/09/01/ruby-1-9-1-p234passenger-2-2-5-tempfile-rb- fix / qui pointe vers un correctif qui supprime une seule ligne du fichier tempfile.rb de Ruby 1.9.1-p234. Malheureusement pour moi, en inspectant ce fichier, je constate que la ligne offensive a déjà été supprimée. Cela me laisse donc un peu désemparé, alors que mon problème persiste. Des idées?

Était-ce utile?

La solution

Il existe une solution de contournement dans la version 2.2.8 du passager. Elle n'est donc plus nécessaire.

Casual La réponse de Jim ci-dessus a fonctionné pour moi. Merci beaucoup Jim pour votre aide.

Les différences sur mon système sont, respectivement, les suivantes. J'espère que cela vous sera utile.

Killian.

*** /usr/local/lib/ruby/gems/1.9.1/gems/passenger-2.2.5/lib/phusion_passenger/utils.rb.orig Tue Nov  3 17:43:30 2009
--- /usr/local/lib/ruby/gems/1.9.1/gems/passenger-2.2.5/lib/phusion_passenger/utils.rb  Tue Nov  3 17:43:46 2009
***************
*** 31,36 ****
--- 31,37 ----
  require 'etc'
  require 'fcntl'
  require 'tempfile'
+ require 'stringio'
  require 'phusion_passenger/exceptions'
  if !defined?(RUBY_ENGINE) || RUBY_ENGINE == "ruby"
    require 'phusion_passenger/native_support'


*** /usr/local/lib/ruby/1.9.1/tempfile.rb.orig  Tue Nov  3 17:44:34 2009
--- /usr/local/lib/ruby/1.9.1/tempfile.rb   Tue Nov  3 17:45:55 2009
***************
*** 137,143 ****
      # keep this order for thread safeness
      begin
        if File.exist?(@tmpname)
!         closed? or close
          File.unlink(@tmpname)
        end
        @@cleanlist.delete(@tmpname)
--- 137,143 ----
      # keep this order for thread safeness
      begin
        if File.exist?(@tmpname)
!         # closed? or close
          File.unlink(@tmpname)
        end
        @@cleanlist.delete(@tmpname)

Autres conseils

Je devais faire ce qui suit pour que cela fonctionne

gems / passagers-2.2.5 / lib / phusion_passenger / utils.rb ajoutez require 'stringio' à ce fichier à la ligne 34

ouvrir lib / ruby ??/ 1.9.1 / tempfile.rb commentez la ligne 140

Et cela fonctionne à merveille.

Hé Damien. J'ai eu le même problème et bien que je n'aie pas de réponse / lien exact pour vous, je devais installer un patch rack et pas tempfile. J'espère que cela aide

Le correctif occasionnel de Jim a fonctionné pour moi, merci, ce problème me rendait fou.

Je devais aussi appliquer un correctif à Actionview (correctif de hector gomez à https://rails.lighthouseapp.com/projects/8994/tickets/2188-i18n-fails-with-multibyte-strings-in-ruby-19 -similar-to-2038 ) pour faire fonctionner rails et ruby ??1.9.1.

Lorsque ce correctif est appliqué, je ne peux pas redémarrer le module Passenger plus de quelques fois à l’aide de la méthode tmp / restart.txt. Après cela, les demandes sont acceptées mais jamais servies. Je soupçonne que le correctif peut être une fuite Tempfiles

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top