我们在生产环境中随机出现以下错误。
错误
Mysql2::Error: This connection is in use by: #<Thread:0x00000009a85760 dead>
设置
这是在Unicorn上运行的Rails应用程序。我们在应用程序中使用线程。我们在每个线程中使用ActiveRecords with_connection来检查连接池中的连接。
Thread.new do
ActiveRecord::Base.connection_pool.with_connection do
# Code that writes to DB here
end
end
在新线程内的第一个ActiveRecord调用上引发错误。它发生在约0.5%的我们的请求上。 我们试图追踪很多请求,但在突然出现此错误之前,没有任何看法会有所不同。