2013-04-22 2 views
1

나는이 추적을 받았고 그 원인을 추적하는 방법을 모릅니다. 테스트를 실행하는 중에 이것이 나타납니다. 진행 방법에 대한 아이디어가 있습니까?헌팅 다운 : DEPRECATION 경고 : 데이터베이스 연결이 자동으로 닫히지 않습니다

DEPRECATION WARNING: Database connections will not be closed automatically, please close your 
database connection at the end of the thread by calling `close` on your 
connection. For example: ActiveRecord::Base.connection.close 
. (called from mon_synchronize at /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/monitor.rb:211) 
/home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_pool.rb:212:in `block in clear_stale_cached_connections!' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_pool.rb:210:in `each' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_pool.rb:210:in `clear_stale_cached_connections!' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_pool.rb:274:in `block (2 levels) in checkout' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_pool.rb:242:in `loop' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_pool.rb:242:in `block in checkout' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_pool.rb:239:in `checkout' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_pool.rb:102:in `block in connection' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_pool.rb:101:in `connection' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_pool.rb:410:in `retrieve_connection' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_specification.rb:171:in `retrieve_connection' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_specification.rb:145:in `connection' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/activerecord-3.2.9/lib/active_record/query_cache.rb:61:in `call' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_pool.rb:479:in `call' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/actionpack-3.2.9/lib/action_dispatch/middleware/callbacks.rb:28:in `block in call' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/activesupport-3.2.9/lib/active_support/callbacks.rb:405:in `_run__1441209721629762293__call__222931449678172199__callbacks' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/activesupport-3.2.9/lib/active_support/callbacks.rb:405:in `__run_callback' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/activesupport-3.2.9/lib/active_support/callbacks.rb:385:in `_run_call_callbacks' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/activesupport-3.2.9/lib/active_support/callbacks.rb:81:in `run_callbacks' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/actionpack-3.2.9/lib/action_dispatch/middleware/callbacks.rb:27:in `call' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/actionpack-3.2.9/lib/action_dispatch/middleware/remote_ip.rb:31:in `call' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/actionpack-3.2.9/lib/action_dispatch/middleware/debug_exceptions.rb:16:in `call' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/actionpack-3.2.9/lib/action_dispatch/middleware/show_exceptions.rb:56:in `call' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/railties-3.2.9/lib/rails/rack/logger.rb:32:in `call_app' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/railties-3.2.9/lib/rails/rack/logger.rb:16:in `block in call' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/activesupport-3.2.9/lib/active_support/tagged_logging.rb:22:in `tagged' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/railties-3.2.9/lib/rails/rack/logger.rb:16:in `call' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/actionpack-3.2.9/lib/action_dispatch/middleware/request_id.rb:22:in `call' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rack-1.4.5/lib/rack/methodoverride.rb:21:in `call' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rack-1.4.5/lib/rack/runtime.rb:17:in `call' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/activesupport-3.2.9/lib/active_support/cache/strategy/local_cache.rb:72:in `call' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rack-1.4.5/lib/rack/lock.rb:15:in `call' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/actionpack-3.2.9/lib/action_dispatch/middleware/static.rb:62:in `call' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/airbrake-3.1.6/lib/airbrake/rack.rb:41:in `call' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/airbrake-3.1.6/lib/airbrake/user_informer.rb:12:in `call' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/railties-3.2.9/lib/rails/engine.rb:479:in `call' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/railties-3.2.9/lib/rails/application.rb:223:in `call' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rack-1.4.5/lib/rack/builder.rb:134:in `call' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rack-1.4.5/lib/rack/urlmap.rb:64:in `block in call' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rack-1.4.5/lib/rack/urlmap.rb:49:in `each' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rack-1.4.5/lib/rack/urlmap.rb:49:in `call' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capybara-1.1.3/lib/capybara/server.rb:17:in `call' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rack-1.4.5/lib/rack/handler/webrick.rb:59:in `service' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/webrick/httpserver.rb:138:in `service' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/webrick/httpserver.rb:94:in `run' 
    /home/gaul/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/webrick/server.rb:191:in `block in start_thread' 

답변

3

는 잘 작동 솔루션입니다 :

after do 
    ActiveRecord::Base.connection.close 
end 

당신은 ActiveRecord connection warning. (Database connections will not be closed automatically)

+0

나는 레일을 사용하고 있는데 이것이 올바른 방법이라고 생각합니다. 레일은 연결 관리 미들웨어를 사용하여 저에게 그렇게해야합니다. –

+0

ok이 문서를 읽으십시오 .https : //github.com/rails/rails/issues/4670 –

+1

나는 이미 이것을 읽었다. 내 레일 코드에서 쓰레드를 사용하지 않는다. 어쩌면 일부 보석 (어쩌면 카피 바라)이 그들을 사용합니까? –

0

내가 도미니크와 같은 문제가이 질문에 모습을 가질 수 있고 내가되지 않았습니다 그것을 해결할 수 있습니다. 난 내 코드에서 어떤 스레드를 사용하지 않는, 모든

  • 첫째 :

    여기에 몇 가지 생각입니다.

  • 일단 페이지가로드되면/test.log에 계속 로그를 남기고 Vanity 경로에 해당하는 이미지 콜이 있기 때문에 VanityUrls를 비난하고 있습니다. 내 생각 엔 모든 요청이 스레드를 생성합니까? 나는 이것이 일어나고 있는지 확인하기위한 어떠한 주장도하지 않는다.
  • 염두에두고, 나는 이미지와 작업 종류를 없앴습니다. 데이터베이스 경고가 계속 발생하지만 다음 테스트가 완벽하게 작동합니다. 과거에는 AR이 테스트를 위해 새 연결을 생성 할 수 없기 때문에 다음 테스트가 실패했습니다. (

  • New Relic, Capybara, Capybara Webkit, AirBrake라고 생각했습니다. 경고를 받고.

  • 하는 것은 어떻게 다른 알고하지 마십시오.

1

확실하지 않음을이이 문제를 얻는 사람을위한 솔루션의 경우,하지만 난 내 자신의 응용 프로그램에서 그것을 알아 냈 생각합니다.

시나리오 : 일부 기능 테 sts (rspec 및 capybara 사용)는 테스트가 통과했지만이 경고를 표시합니다.

문제점 : 테스트에서 아약스가있는 컨트롤러에 호출 된 페이지가로드되어 있고, 렌더링 된 페이지가 일부 partials rendered_to_string과 함께 렌더링되었습니다. 부분 중 하나가 오류를 던지고 있었지만 테스트는 그 부분의 일부가 아닌 다른 부분의 모양을 찾고있었습니다. 테스트가 통과되었습니다.

이 특정 방법에 대한 더 나은 테스트가 필요하며 적은 작업을 수행해야합니다. 그러나 이것은 내 문제의 원인이었고 테스트를 실행하는 동안 test.log를 꼬리로 만 보았습니다.

+0

로그를 테일링하는 것이 좋습니다. 큰 JS 페이지에서 여러 번 전화를 걸었습니다. 몇 가지 500 오류가 나타났습니다. 500 개의 오류를 처리 한 후 사용 중단 오류가 사라졌습니다. – amorphid

관련 문제