2013-02-15 6 views
9

Od jakiegoś czasu korzystam z aplikacji WWW wysokiej rozdzielczości do obsługi java w Google AppEngine. Około dwa dni temu - w zasadzie znikąd - wiele próśb zaczęło zawieść z stanem HTTP 500 i kodem błędu 121, co oznacza, że ​​odpowiednia instancja GAE ulega awarii lub jest wyłączona.Dlaczego moje wystąpienia w Google AppEngine ulegają awarii z kodem błędu 121?

Oto przykładowy wpis w dzienniku, który mam teraz mnóstwo:

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) 

Błąd występuje czasami w prawo żądania „rozgrzewka”, więc kiedy nowa instancja otrzymuje swoje pierwsze żądanie. Skojarzony wpis dziennika wygląda następująco:

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) 

I zostały poszukiwania w internecie na ten problem i wygląda na to zdarzyło: http://code.google.com/p/googleappengine/issues/detail?id=7348.

Ponieważ wszystkie istotne kwestie zostały oznaczone jako „rozwiązane”, zrobiłem złożyć nowy GAE problem produkcyjny tutaj: http://code.google.com/p/googleappengine/issues/detail?id=8812

Edit 2013-04-29: Powyższy link już nie działa, ponieważ ten problem został oznaczony jako "Ograniczony" przez zespół GAE.

Niestety moje wołanie o pomoc przeszło niezauważone przez ponad dwa dni. Właśnie dlatego, w mojej całkowitej desperacji, proszę o twoją pomoc! :-)

Czy ktoś wie, co powoduje kod błędu 121? Czy istnieje jakaś forma dokumentacji? Czy coś jest nie tak z moją aplikacją? Czy istnieje sposób, aby skłonić zespół AppEngine do zapoznania się z tym problemem?

Thanksalot!

+0

Czy możesz nam powiedzieć, czy Twoja aplikacja to Java, Python lub Go? –

+0

Nick, przepraszam, że o tym zapomniałem: To jest Java. – Holger

+0

Cześć, Holger, czy ten błąd sam zniknie? Dzisiaj (1 godzina temu) mam dokładnie ten sam problem (kod błędu 121) podobny do twojego. Moja aplikacja działa dobrze od miesiąca, ale teraz dostaję ten błąd. Jednak moja aplikacja jest na python27/HRD. –

Odpowiedz

0

Nie widziałem nic na pewno na ten temat od Google. Często są nieśmiali, aby wyjaśnić takie problemy. Jeden z wątków wspomina o migracji danych. Zobacz, czy to pomaga;

http://code.google.com/p/googleappengine/issues/detail?id=7022

+0

Moja aplikacja używa już magazynu danych o wysokiej replikacji. Tak więc, MS nie może być przyczyną błędów. Przepraszam, że nie wspomniałem o tym w poście. – Holger

+0

Rozumiem. Przy okazji doświadczyłem dwóch dziwnych zachowań w App Engine. 1) Nie można uzyskać dostępu do dzienników dla mojej aplikacji przez jakiś czas 2) Nie można usunąć niczego z magazynu danych za pomocą aplikacji. Przeniosłem aplikację i po chwili wszystko poszło dobrze. Jak już powiedziałeś, twój problem właśnie się pojawił, może zniknąć sam. Tylko Google może odpowiedzieć na pytanie, dlaczego tak się dzieje. Wszystko co najlepsze – mhan

+0

Dzięki za informacje. Jednak interfejs sieciowy działa dobrze dla mnie. Również ponowne wdrożenie nie pomogło naprawić błędy. To też było moje pierwsze przypuszczenie. Dzięki jeszcze raz. – Holger

0

nie mam wystarczająco dużo punktów do odpowiedzi, ale mam konkretny przypadek użycia, który wydaje się interesujący:

  • python27
  • hrd
  • dynamiczny backed skonfigurowany z 8 przypadkach

Wszystko działa zgodnie z oczekiwaniami, z wyjątkiem jednej instancji , Instance = 2, które zasadniczo cykle

  • '/ _ah/start'
  • (kod błędu 121)
  • '/ _ah/stop'

wspomagająca pozwala rozwiązać konkretny instancja taka jak 2.backendname.appname.appspot.com i najwyraźniej coś jest nie tak z tą instancją.

Przypuszczam, że to uspokajające, że istnieje jedna zła instancja, która wielokrotnie przestaje działać z powodu niejasnego kodu błędu, zamiast wielu wystąpień losowych z powodu nieostrego kodu błędu. Byłoby to bardziej uspokajające, gdyby ta instancja została upuszczona, szczególnie, jeśli zmienia ona ten schemat.

0

Sprawdź limity przechowywania dzienników i nie przekraczaj ich. Nie spodziewałbyś się, że pominięcie limitów przechowywania dzienników spowoduje wyjątek, który spowodowałby awarię instancji, ale po tym, jak zwiększyłem swój, przestałem widzieć ten błąd, a moje zadania backend Cron mogły zostać ukończone.

+0

Mgławice, dziękuję za odpowiedź! Jeszcze nie rozumiem, jak powinienem pracować z tym: Jeśli zwiększę limity zatrzymywania dziennika, otrzymam większe dzienniki. Dzienniki te zostaną ostatecznie usunięte w pewnym momencie. Zakładam więc, że jest to tylko tymczasowa poprawka, ponieważ nie znalazłem jeszcze sposobu na ręczne usunięcie dzienników. czy to możliwe? – Holger

+0

Nebulae, właśnie przetestowałem twoją sztuczkę zatrzymania dziennika przez podwojenie moich limitów przechowywania. To nie rozwiązuje problemu dla mnie. – Holger

Powiązane problemy