Я уже давно запускаю веб-приложение с высокой репликацией Java в Google AppEngine. Около двух дней назад - в основном из ниоткуда - многие запросы начали давать сбой с HTTP-статусом 500 и кодом ошибки 121, что означает, что соответствующий экземпляр GAE аварийно завершает работу или отключается.
Вот примерная запись в журнале, которой я сейчас обладаю:
2013-02-15 06:44:00.909 /api 500 3770ms 0kb Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17
###.###.###.### - - [14/Feb/2013:22:44:00 -0800] "POST /api HTTP/1.1" 500 0 - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17" "###.########.###" ms=3770 cpu_ms=1191 exit_code=121 instance=00c61b117c2c2b8fd8c433bc45a62183829f6484
W 2013-02-15 06:44:00.652
A problem was encountered with the process that handled this request, causing it to exit. This is likely to cause a new process to be used for the next request to your application. (Error code 121)
Ошибка иногда возникает прямо в запросе на разогрев, таким образом, когда новый экземпляр получает свой первый запрос. Соответствующая запись в журнале выглядит следующим образом:
2013-02-15 06:40:02.779 /_ah/warmup 500 2970ms 0kb
0.1.0.3 - - [14/Feb/2013:22:40:02 -0800] "GET /_ah/warmup HTTP/1.1" 500 0 - - "2013-02-14-1438.flox-by-gamua.appspot.com" ms=2971 cpu_ms=671 loading_request=1 exit_code=121 instance=00c61b117c48cb17ea555d1988c0db473c2390
I 2013-02-15 06:40:02.437
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.
W 2013-02-15 06:40:02.437
A problem was encountered with the process that handled this request, causing it to exit. This is likely to cause a new process to be used for the next request to your application. (Error code 121)
Я искал в Интернете эту проблему, и похоже, что это произошло раньше: https://code.google.com/p/googleappengine/issues/detail?id=7348.
Поскольку все соответствующие проблемы были помечены как "решенные", я подал новую проблему с производством GAE здесь: https://code.google.com/p/googleappengine/issues/detail?id=8812
Изменить 2013-04-29: Приведенная выше ссылка больше не работает, поскольку эта проблема была помечена командой "GAE" как "Ограниченная".
К сожалению, мои крики о помощи остались незамеченными на протяжении более двух дней. Вот почему я в полном отчаянии прошу вашей помощи!
Кто-нибудь знает, что вызывает код ошибки 121? Есть ли какая-то форма документации? Что-то не так с моим приложением? Есть ли способ убедить команду AppEngine разобраться в этой проблеме?
Большое спасибо!