«обнаружены тупики» на сайте Rails 2.3.14 - Passenger 3.0.9, Ruby 1.9.2 - PullRequest
0 голосов
/ 03 октября 2011

Примерно каждый третий раз, когда мое приложение выполняет определенное действие обновления (два, которые я обнаружил до сих пор), оно взрывается с ошибкой "обнаружена взаимоблокировка".

Я не смог отследитьэто к любому из нашего собственного кода приложения.Кажется, что действие завершается, но затем происходит сбой, когда Rails или Passenger завершают его.(Это происходит не просто из-за сохранения записей в скрипте / консоли.)

Вот что в журналах появляется, когда это происходит: https://gist.github.com/1259104

Что происходит и что делаетЯ об этом?

(примечание: переключились на Ruby 1.9.2 на основе RVM, и проблема не устранена.)

1 Ответ

0 голосов
/ 16 ноября 2011

Похоже, проблема заключается в следующем:

https://rails.lighthouseapp.com/projects/8994/tickets/5736-connections-not-released-in-rails-3

Однако вышеупомянутая проблема относится только к Rails 3. Мы видим это в Rails 2.3.14 под Ruby 1.9.2.

У нас работает патч к connection_pool.rb.Этот конкретный файл, кажется, идентичен между бета-версиями 2.3.14 и 3.1.0, так что патч аналогичен.Мы должны были исправить сам гем - сделать это, загрузив новый файл / класс, как часть самого приложения Rails, не добились цели - но поведение у нас такое же, как сообщается там, - вместовзаимоблокировка / истощение соединений дб, есть небольшая задержка.В сочетании с увеличением размера пула в производственной конфигурации db в database.yml это работает довольно приемлемо, хотя я надеюсь на еще лучшее решение.

& Спасибо Алексу Каудиллу за то, что нашли это для нас!

...