2012-10-05 31 views
1

我在同一個實例上發生了20次這樣的錯誤,然後在實例因處理太多順序錯誤而死亡後消失。我的代碼沒有做任何更改,這是我唯一見過這種情況的時間。App Engine AttributeError:'模塊'對象沒有'事件'屬性

問題:

  • 在我的代碼是什麼類型的問題可能會導致這與某些情況下才會發生?我不知道從哪裏開始尋找,因爲我無法重現問題。
  • 有沒有一種方法可以減少實例在被殺死之前所允許的順序錯誤的數量,所以如果它再次發生,這不會造成太大的破壞?

這是第一個日誌,我從這個例子有(沒有錯誤):

2012-10-05 18:41:03.266 /rpc/?action=ServerAvailable 500 60908ms 0kb popwords/1.2   CFNetwork/548.1.4 Darwin/11.4.2 
98.207.195.103 - - [05/Oct/2012:11:41:03 -0700] "GET /rpc/?action=ServerAvailable HTTP/1.1" 500 0 - "popwords/1.2 CFNetwork/548.1.4 Darwin/11.4.2" "www.popwordsapp.appspot.com" ms=60909 cpu_ms=498 loading_request=1 instance=00c61b117c8f8b7f701c0776284c25a64c7ff329 
I 2012-10-05 18:41:03.265 
This request caused a new process to be started for your application, and thus caused your application code to be loaded for the first time. This request may thus take longer and use more CPU than a typical request for your application. 

這是一個日誌從這個實例(第一個有誤差):

2012-10-05 18:49:38.704 /rpc/?action=ServerAvailable 500 867ms 0kb popwords/1.2 CFNetwork/548.1.4 Darwin/11.4.2 
98.207.195.103 - - [05/Oct/2012:11:49:38 -0700] "GET /rpc/?action=ServerAvailable HTTP/1.1" 500 0 - "popwords/1.2 CFNetwork/548.1.4 Darwin/11.4.2" "www.popwordsapp.appspot.com" ms=867 cpu_ms=86 instance=00c61b117c8f8b7f701c0776284c25a64c7ff329 
E 2012-10-05 18:49:38.103 
Traceback (most recent call last): 
    File "/base/python27_runtime/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 195, in Handle 
handler = _config_handle.add_wsgi_middleware(self._LoadHandler()) 
    File "/base/python27_runtime/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 239, in _LoadHandler 
handler = __import__(path[0]) 
    File "/base/data/home/apps/s~popwordsapp/1.362183705604897547/main.py", line 40, in <module> 
from google.appengine.ext import db 
    File "/base/python27_runtime/python27_lib/versions/1/google/appengine/ext/db/__init__.py", line 98, in <module> 
from google.appengine.api import datastore 
    File "/base/python27_runtime/python27_lib/versions/1/google/appengine/api/datastore.py", line 62, in <module> 
from google.appengine.datastore import datastore_query 
    File "/base/python27_runtime/python27_lib/versions/1/google/appengine/datastore/datastore_query.py", line 64, in <module> 
from google.appengine.datastore import datastore_index 
    File "/base/python27_runtime/python27_lib/versions/1/google/appengine/datastore/datastore_index.py", line 62, in <module> 
from google.appengine.api import yaml_object 
    File "/base/python27_runtime/python27_lib/versions/1/google/appengine/api/yaml_object.py", line 36, in <module> 
from google.appengine.api import yaml_listener 
    File "/base/python27_runtime/python27_lib/versions/1/google/appengine/api/yaml_listener.py", line 34, in <module> 
    yaml.events.StreamStartEvent: 'StreamStart', 
AttributeError: 'module' object has no attribute 'events' 

在這兩個日誌之間有一個日誌創建了一個額外的實例(沒有錯誤)。沒有任何錯誤來自在第一個之後立即創建的另一個實例。由於處理了太多順序錯誤,它在第一個實例被終止後成功處理了請求。

+2

你可以檢查你的日誌,看看該實例的第一個請求是否有DeadlineExceededError?如果是這樣,這是一個已知問題,即實例處於半初始狀態,唯一的恢復方法是關閉實例。 –

+0

謝謝你的採訪。不,它沒有。我編輯了我的問題,添加了前兩個日誌和一些細節。 – user1139733

+1

第一次請求肯定有錯誤(500次,超過60秒)。下一個請求也很有趣,因爲某些原因,它正在執行應用程序加載,只能對給定處理程序的第一個請求執行加載。 –

回答

0

我在部署代碼後偶爾會看到此錯誤,並且重新部署通常會停止它。沒有那麼有用,我知道,但希望這是Google很快就會解決的問題。

+1

作爲評論,這可能會更好。這可能是有用的,但它不是一個答案。 – carbontax

+0

我猜這只是因爲當您重新部署刪除不好的新實例時會產生新的實例,所以我認爲這不是永久性修復,以防止不良實例出現。 – user1139733

相關問題