1
在某些情況下,當在代碼中的錯誤(通常在局部命名錯誤的變量,但它可能是別的東西爲好),我從nginx的,而不是預期的堆棧跟蹤504超時(上發展環境)。爲什麼nginx +獨角獸會返回504在異常(而不是堆棧跟蹤)上超時?
似乎規格在相同的錯誤上停頓(而不是立即報告「失敗」)。
任何有關我應該查看的內容或者可能對我的設置有任何錯誤的想法都會有所幫助。
我正在使用Ruby on Rails 3.1。
在某些情況下,當在代碼中的錯誤(通常在局部命名錯誤的變量,但它可能是別的東西爲好),我從nginx的,而不是預期的堆棧跟蹤504超時(上發展環境)。爲什麼nginx +獨角獸會返回504在異常(而不是堆棧跟蹤)上超時?
似乎規格在相同的錯誤上停頓(而不是立即報告「失敗」)。
任何有關我應該查看的內容或者可能對我的設置有任何錯誤的想法都會有所幫助。
我正在使用Ruby on Rails 3.1。
您是否在使用任何類型的異常捕獲或異常通知?它可以在你的代碼中,在你引用的庫中,或者在你引用的gem中。
如果你是,禁用它(註釋掉等),看看你得到什麼。
如果您正在運行production
,請切換到development
(如果可以)。
很多人不贊成故障排除這種方法,但其他的事情我有時會做的一個是辣椒我的代碼與附加到一個狀態文件(格式<DATE> <TIME> - <MESSAGE>
線,通過看到的是寫入文件每個請求後,我能找到其中的問題是
你可以做一些這樣的:
def debug(filename, message)
File.open(filename, 'a') {|f| f.write("#{Time.now} - #{message}") }
end
調用debug('/tmp/log.txt','Test Message')
會顯示這樣的事情:
2011-12-29 23:31:51 -0500 - Test Message
當我得到迴應時,我從Unicorn切換到Thin,我停止注意到這個錯誤。我確實有異常通知代碼,並嘗試禁用它沒有幫助:(我很好奇,但是,爲什麼你不會使用Rails.logger,而不是單獨的狀態日誌? –
@Damir Zekic我不會使用Rails如果它是問題的一部分,對於這種調試,最簡單的解決方案是最簡單的,這也允許您在加載Rails日誌之前調試Rails啓動,因爲它不依賴任何其他代碼。 –