2009-10-26 25 views
7

Tôi đã thiết lập Ruby 1.9.1 (p234) trên máy chủ Ubuntu. Tôi đang cố gắng triển khai một ứng dụng Rails mà nhà cung cấp Rails 2.3 ổn định trên Apache 2.2/Passenger 2.2.5.Ruby 1.9.1-p234, Hành khách 2.2.5, Đường ray đóng ổn định 2.3 trên yêu cầu POST

yêu cầu GET làm việc tốt, yêu cầu POST phá vỡ ngay lập tức với mục nhật ký sau đây:

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'

... và sau đó một số.

Tôi đã đọc và thấy điều này: http://blog.labnotes.org/2009/09/01/ruby-1-9-1-p234passenger-2-2-5-tempfile-rb-fix/ trỏ đến một bản vá xóa một dòng khỏi tempfile.rb của Ruby 1.9.1-p234. Thật không may cho tôi, kiểm tra tập tin đó tôi thấy rằng đường tấn công đã bị xóa. Vì vậy, điều đó khiến tôi hơi thất bại, vì vấn đề của tôi vẫn tồn tại. Bất kỳ ý tưởng?

+1

cố định trong hành khách mới nhất, hacks xấu xí không còn cần thiết –

Trả lời

5

Có giải pháp thay thế trong hành khách 2.2.8 vì vậy điều này không còn cần thiết nữa.

Phản hồi bình thường của Jim ở trên đã hiệu quả đối với tôi. Cảm ơn Jim rất nhiều vì đã giúp đỡ bạn.

Sự khác biệt trên hệ thống của tôi tương ứng như sau. Tôi hy vọng điều này là hữu ích.

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) 
+0

Wow, cảm ơn rất nhiều vì đã đăng bài đó! Tôi đã nhầm lẫn rằng ma thuật "dòng 140" với một sửa chữa tempfile (được mô tả ở đây: http://blog.labnotes.org/2009/09/01/ruby-1-9-1-p234passenger-2-2-5 -tempfile-rb-fix /) và cố sửa lỗi sai. Nó hoạt động ngay bây giờ, cảm ơn rất nhiều! – Christian

+0

Hiện tại, tính năng này có hoạt động với hành khách mới nhất không? –

0

Hey Damien. Tôi đã có cùng một vấn đề và trong khi tôi havent có một câu trả lời chính xác/liên kết cho bạn từ bộ nhớ tôi đã phải vá rack và không tempfile. Tôi hy vọng điều này sẽ giúp

+0

Chính xác làm thế nào bạn vá Rack? Tôi nhận thấy rằng Hành khách cung cấp phiên bản Rack trước 1.0.0. Tôi đã cố gắng để thay thế phiên bản vendored với Rack 1.0.1, nhưng tiếp tục nhận được lỗi tương tự. – Christian

2

tôi phải làm như sau để làm cho nó hoạt

đá quý/hành khách-2.2.5/lib/phusion_passenger/utils.rb add require 'StringIO' đến tập tin đó trên đường dây 34

mở lib/ruby ​​/ 1.9.1/tempfile.rb nhận xét dòng 140

Và nó hoạt động như một sự quyến rũ.

+0

Cảm ơn bạn đã bị nhấm nháp. Tuy nhiên, tôi vẫn chưa nhận được bất kỳ nơi đâu. Bạn có nhớ gửi tempfile của bạn không? Tôi không thể hiểu làm thế nào tempfile của tôi trông khác với những người khác sử dụng cùng một phiên bản của Ruby. – Christian

+0

hoạt động hoàn hảo, cảm ơn –

0

Sửa lỗi bình thường của Jim làm việc cho tôi, cảm ơn, vấn đề này đã khiến tôi phát điên.

Tôi cũng đã phải vá actionview (mỗi bản vá của hector gomez tại https://rails.lighthouseapp.com/projects/8994/tickets/2188-i18n-fails-with-multibyte-strings-in-ruby-19-similar-to-2038) để có được đường ray và ruby ​​1.9.1 hoạt động.

+0

Tôi đang chạy Rails 2-3-ổn định từ git, nó hoạt động mà không cần vá. – Christian

0

Khi áp dụng sửa lỗi này, tôi không thể khởi động lại mô-đun Hành khách quá một vài lần bằng phương pháp tmp/restart.txt. Sau đó, các yêu cầu được chấp nhận nhưng không bao giờ được phục vụ. Tôi nghi ngờ rằng các miếng vá có thể bị rò rỉ tempfiles

Các vấn đề liên quan