11

一段时间以来,我一直在 Google AppEngine 上运行 java 高复制 Web 应用程序。大约两天前 - 基本上不知从何而来 - 许多请求开始失败,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 团队调查这个问题?

非常感谢!

4

3 回答 3

1

我没有足够的分数来回答,但我有一个看起来很有趣的特定用例:

  • 蟒蛇27
  • 人力资源
  • 配置了 8 个实例的动态支持

一切都按预期工作,除了一个实例,instance=2,它基本上是循环的

  • '/_ah/开始'
  • (错误代码 121)
  • '/_啊/停止'

后端允许您处理特定实例,例如 2.backendname.appname.appspot.com,显然该实例有问题。

我想知道有一个糟糕的实例由于模糊的错误代码而反复失败,而不是许多实例由于模糊的错误代码而随机失败,这让人放心。如果该实例被删除等会更令人放心,特别是如果它正在循环这种模式。

于 2013-05-17T14:39:48.070 回答
1

检查您的日志保留限制,并且您没有超过它们。您不会期望绕过您的日志保留限制会导致导致实例失败的异常,但是在我增加我的数量后,我不再看到此错误出现并且我的后端 cron 作业能够完成。

于 2013-08-22T19:10:30.553 回答
0

还没有从谷歌看到任何关于这方面的确切信息。他们常常羞于解释这些问题。其中一个线程确实提到了数据存储迁移。看看是否有帮助;

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

于 2013-02-15T12:53:29.467 回答