Ruby 1.9.1-p234 -, Passagier-2.2.5, Rails 2.3-stabile geschlossen stream auf POST-Anforderung
-
06-07-2019 - |
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:in
read'
/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:in
call'
/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:in
call'
/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:in
block 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:in
call'
/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:in
process_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:in
start_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:in
safe_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?
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,