7

RoR アプリに対して最初の SELECT リクエストを実行すると、「PG::Error: SSL SYSCALL エラー: EOF が検出されました」というメッセージが表示されます。Postgresql で SSL をオフにするにはどうすればよいですか?

エラー情報:

ActiveRecord::StatementInvalid: PG::Error: SSL SYSCALL エラー: EOF が検出されました: SELECT "vacancies".* FROM "vacancies" WHERE (moderated_at IS NOT null) ORDER BY id DESC LIMIT 10

スタック トレースの例 (Rails を表示)

…ases/20120808235942/app/controllers/home_controller.rb:   6:in `index'
…le/ruby/1.9.1/gems/journey-1.0.3/lib/journey/router.rb:  68:in `block in call'
…le/ruby/1.9.1/gems/journey-1.0.3/lib/journey/router.rb:  56:in `each'
…le/ruby/1.9.1/gems/journey-1.0.3/lib/journey/router.rb:  56:in `call'
…dle/ruby/1.9.1/gems/warden-1.1.1/lib/warden/manager.rb:  35:in `block in call'
…dle/ruby/1.9.1/gems/warden-1.1.1/lib/warden/manager.rb:  34:in `catch'
…dle/ruby/1.9.1/gems/warden-1.1.1/lib/warden/manager.rb:  34:in `call'
…red/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/etag.rb:  23:in `call'
…/ruby/1.9.1/gems/rack-1.4.1/lib/rack/conditionalget.rb:  25:in `call'
…/1.9.1/gems/rack-1.4.1/lib/rack/session/abstract/id.rb: 205:in `context'
…/1.9.1/gems/rack-1.4.1/lib/rack/session/abstract/id.rb: 200:in `call'
…/ruby/1.9.1/gems/rack-1.4.1/lib/rack/methodoverride.rb:  21:in `call'
…/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/runtime.rb:  17:in `call'
…red/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/lock.rb:  15:in `call'
…by/1.9.1/gems/rack-cache-1.2/lib/rack/cache/context.rb: 136:in `forward'
…by/1.9.1/gems/rack-cache-1.2/lib/rack/cache/context.rb: 245:in `fetch'
…by/1.9.1/gems/rack-cache-1.2/lib/rack/cache/context.rb: 185:in `lookup'
…by/1.9.1/gems/rack-cache-1.2/lib/rack/cache/context.rb:  66:in `call!'
…by/1.9.1/gems/rack-cache-1.2/lib/rack/cache/context.rb:  51:in `call'
…by/1.9.1/gems/unicorn-4.3.1/lib/unicorn/http_server.rb: 531:in `process_client'
…by/1.9.1/gems/unicorn-4.3.1/lib/unicorn/http_server.rb: 606:in `worker_loop'
…by/1.9.1/gems/unicorn-4.3.1/lib/unicorn/http_server.rb: 487:in `spawn_missing_workers'
…by/1.9.1/gems/unicorn-4.3.1/lib/unicorn/http_server.rb: 137:in `start'
4

1 に答える 1

2

この問題を解決する方法を見つけました。Capistranoを使用してアプリをデプロイする場合は、unicorn.rbに追加してください

before_fork do |server, worker|
  defined?(ActiveRecord::Base) and
      ActiveRecord::Base.connection.disconnect!
end

after_fork do |server, worker|
   defined?(ActiveRecord::Base) and
      ActiveRecord::Base.establish_connection
end
于 2012-10-01T12:32:30.553 に答える