Action Dispatch DebugLocks
此中間件可用於診斷自動載入互鎖中的死結。
要使用它,請將其插入中間件堆疊的頂端,使用 config/application.rb
config.middleware.insert_before Rack::Sendfile, ActionDispatch::DebugLocks
在重新啟動應用程式並重新觸發死結狀態後,路由 /rails/locks
會顯示 interlock 目前已知的所有執行緒摘要,它們持有的或正在等待的鎖定層級,以及它們目前的回溯。
通常死結將由 interlock 衝突與某個其他外部鎖定或封鎖 I/O 呼叫所造成。這些無法自動識別,但應該可以在顯示的回溯中看到。
注意:此中間件輸出的格式和內容是針對人為使用的,預期將會在各版本之間變更。
此中間件會公開伺服器的操作細節,且沒有存取控制。只有在使用中的時候才應啟用,在此之後移除。
方法