Ruby On Rails 3 - Lost connection to MySQL server during query и ActiveModel::MissingAttributeError: missing attribute

Немного пред истории. После обновления приложения неожиданно в логе появились ошибки вида ActiveModel::MissingAttributeError: missing attribute: произвольное свойство объекта.



Проблема первая первая ActiveModel::MissingAttributeError: missing attribute

Немного о окружение
две базы 1 мастер для записи и 1 slave для чтения
Фреймворк Ruby On Rails 3
Гем для деления коннектов ar-octopus
Сервер Passenger

все дело оказалось банально в настройке:
verify_connection: true Почему это работало раньше и вдруг перестало не совсем ясна, но добавление строчки немного помогло

octopus:
  replicated: true
  verify_connection: true
  environments:
         - production

Почему немного? остались еще ошибки.



Проблема вторая Lost connection to MySQL server during query

Ошибка возникала на произвольных запросах. Для решения проблемы достаточно добавить скрипт инициализация для Passenger.
config/initializers/phusion_passenger.rb

if defined?(PhusionPassenger)
  PhusionPassenger.on_event(:starting_worker_process) do |forked|
    if forked
      # the following is *required* for Rails + "PassengerSpawnMethod smart".
      if defined?(ActiveRecord::Base)
        # force reconnect to "master" connection.
        ActiveRecord::Base.connection_pool.disconnect!

        # force reconnect to our octopus "slave" pools. This may include the "master" pool above.
        if defined?(Octopus)
          ActiveRecord::Base.connection_proxy.instance_variable_get(:@shards).each { |name, pool| pool.disconnect! }
        end 
      end 
    end 
  end 
end


Вам может понравиться