Ruby 1.9.1-p234, пассажир 2.2.5, рельсы 2.3-стабильный закрытый поток по запросу POST


Я установил Ruby 1.9.1 (p234) на сервере Ubuntu. Я пытаюсь развернуть приложение Rails, которое производит Rails 2.3-stable на Apache 2.2 / Passenger 2.2.5.

GET запросов работает нормально, POST-запросы сразу порвать с журнале следующую запись:

{[0]}

...а потом еще немного.

Я прочитал и нашел вот что: http://blog.labnotes.org/2009/09/01/ruby-1-9-1-p234passenger-2-2-5-tempfile-rb-fix/ который указывает на патч, который удаляет одну строку из Ruby 1.9.1-темпфайл p234.rb. К несчастью для меня, изучая этот файл, я обнаруживаю, что наступательная линия уже удалена. Так что это оставляет меня немного невежественным, поскольку моя проблема сохраняется. Есть идеи?

5 7

5 ответов:

Существует обходной путь в пассажирском 2.2.8, так что это больше не требуется.

Случайный ответ Джима выше сработал для меня. Большое спасибо Джиму за вашу помощь.

Различия в моей системе, соответственно, следующие. Я надеюсь, что это полезно.

Киллиан.

*** /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)

Мне пришлось сделать следующее, чтобы заставить его работать

Gems / passenger-2.2.5 / lib/phusion_passenger / utils.rb добавьте require 'stringio' в этот файл в строке 34

Откройте lib / ruby / 1.9.1 / tempfile.rb закомментируйте строку 140

И это работает как заклинание.

Привет, Дэмиен. У меня была та же проблема, и пока я не получил точный ответ / ссылку для вас из памяти, мне пришлось залатать стойку иНе tempfile. Я надеюсь, что это поможет

Исправление случайного Джима сработало для меня, спасибо, эта проблема сводила меня с ума.

Мне также пришлось залатать actionview (в соответствии с патчем Гектора Гомеса на https://rails.lighthouseapp.com/projects/8994/tickets/2188-i18n-fails-with-multibyte-strings-in-ruby-19-similar-to-2038) чтобы заставить rails и ruby 1.9.1 работать.

При применении этого исправления я не могу перезапустить пассажирский модуль более нескольких раз с помощью tmp / restart.метод txt. После этого запросы принимаются, но никогда не обслуживаются. Я подозреваю, что патч может быть утечка tempfiles