2015-06-01 38 views
3

某些請求在我的python應用程序中悄然失敗,間歇性和不可預測。失敗的標誌是:App引擎在某些請求上靜默失敗

  • 請求返回200,所以客戶端不知道有問題。
  • 請求無法在服務器上成功執行。
  • 沒有記錄該請求的日誌語句。

下面是一個例子,從我的一堆請求中每一個都應該寫入一個實體到數據存儲的日誌。您可以看到較低的成功請求,出現藍色「i」,表示已記錄info級日誌。當我檢查數據存儲時,爲此請求成功編寫了一個實體。

但是,對於失敗的請求,您可以看到只有一個白色框,並且根本沒有日誌記錄。當服務器返回200時,沒有任何實體被寫入數據存儲以獲得此請求。

Log Viewer

有沒有人遇到過這樣的事情之前在App Engine上?有關如何調試它的任何想法?我已經在多個不同的應用程序中看到過它,但我從來沒有弄明白。

EDIT

爲了澄清,這裏的主要問題是,如由未寫的實體測量代碼不執行,。虛假200和缺乏記錄是相關的症狀。

+0

問題是日誌丟失或實體未被寫入? –

+0

問題是實體沒有寫入。缺乏日誌是一個症狀(我認爲),這使得調試特別困難。 – Chris

+0

你用什麼框架來登錄? –

回答

2

從最初評論,但似乎是對這一問題的決議路徑:

鑑於目前在所有行內沒有日誌報表,你似乎解開爭論並儘快登錄他們爲你進入處理程序,這開始看起來像一個基礎設施/平臺問題。

在這種情況下,最好打開一個public issue tracker issue,將「Type-Production」作爲標記,包括應用程序的應用程序ID和時間範圍以及儘可能多的有關您的應用程序和請求處理程序的信息,以及平臺支持將在分類過程中發現問題。

也就是說,值得檢查處理程序以確保無法退出處理程序併發送200而不記錄任何內容或發現異常。這完全取決於處理請求的代碼能夠執行什麼操作,它建立的庫有多少堆等。

+1

我會試着用最簡單的方法重現這個應用程序可以消除「捕獲的異常」的可能性,然後報告錯誤。謝謝Nick。 – Chris