Frage

Ich habe setup-Ruby 1.9.1 (p234) auf einem Ubuntu server.Ich versuche, die Bereitstellung einer Rails-app, die Anbieter Rails 2.3-stabil auf Apache 2.2/Beifahrer 2.2.5.

GET-Anfragen funktionieren, POST-Anfragen Pause sofort mit der folgenden log-Eintrag:

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'

...und dann einige.

Ich habe gelesen, und fand diese: http://blog.labnotes.org/2009/09/01/ruby-1-9-1-p234passenger-2-2-5-tempfile-rb-fix/ die Punkte auf einen patch, der entfernt einer einzigen Linie von Ruby-1.9.1-p234 ist tempfile.rb.Leider für mich, Inspektion, dass die Datei finde ich, dass die offensive line wurde bereits entfernt.Also, das lässt mich ein bisschen ratlos, da mein problem weiterhin besteht.Irgendwelche Ideen?

War es hilfreich?

Lösung

Es gibt eine Abhilfe in Passagiere 2.2.8 so wird diese nicht mehr benötigt werden.

Casual Jims Antwort oben für mich gearbeitet. Vielen Dank Jim für Ihre Hilfe.

Die diffs auf meinem System sind jeweils wie folgt. Ich hoffe, dass dies hilfreich ist.

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)

Andere Tipps

Ich musste Folgendes tun, damit es funktioniert

gems/passenger-2.2.5/lib/phusion_passenger/utils.rb fügen Sie erfordern 'stringio', um die Datei auf der Linie 34

öffnen lib/ruby/1.9.1/tempfile.rb comment out line 140

Und es funktioniert wie ein Charme.

Hey Damien. Ich hatte das gleiche Problem und während ich bekam haben eine genaue Antwort / Link für Sie aus dem Gedächtnis hatte ich Rack zu flicken und nicht tempfile. Ich hoffe, das hilft

Casual Jims fix für mich gearbeitet, danke, dieses Problem mich verrückt fuhr.

Ich hatte auch unter https://rails.lighthouseapp.com/projects/8994/tickets/2188-i18n-fails-with-multibyte-strings-in-ruby-19 -similar-to-2038 ) zu bekommen, Schienen und Rubin 1.9.1 arbeiten.

Wenn Sie diesen Fix angewendet, kann ich nicht neu starten, das Passagiermodul mehr als ein paar Mal die tmp / restart.txt Methode. Danach werden Anfragen akzeptiert, aber nie serviert. Ich vermute, dass der Patch tempfiles undicht werden kann,

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top