【问题标题】:Why are my Google AppEngine instances crashing with 'error code 121'?为什么我的 Google AppEngine 实例会因“错误代码 121”而崩溃?
【发布时间】:2013-01-31 03:20:59
【问题描述】:

我在 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 团队调查这个问题?

非常感谢!

【问题讨论】:

  • 您能告诉我们您的应用是 Java、python 还是 Go?
  • 尼克,很抱歉忘记了这一点:它是 Java。
  • 嗨,Holger,这个错误会自行消失吗?今天(1 小时前),我遇到了和你一样的问题(错误代码 121)。我的应用程序从一个月前开始运行良好,但现在出现此错误。但是,我的应用在 python27/HRD 上。
  • 是的。至少在我的情况下,这些错误在几天后就消失了。我不知道他们做了什么,但有一天错误消失了。它们会以极少的间隔回来,但不会像我第一次创建这个问题时那样堆积起来。另外,我仍然不知道它们为什么会发生......
  • 两个小时后,我们又回到了 121 - 并且很多。相同的模式:我们这边的任何更改都不会触发这些错误。

标签: google-app-engine


【解决方案1】:

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

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

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

  • '/_ah/start'
  • (错误代码 121)
  • '/_ah/stop'

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 星云,谢谢你的回答!我还不明白我应该如何处理这个问题:如果我增加日志保留限制,我会得到更大的日志。这些日志最终将不得不在某个时候被删除。所以我认为这只是一个临时修复,因为我还没有找到手动删除日志的方法。这可能吗?
    • 星云,我刚刚通过将我的保留限制加倍来测试你的日志保留技巧。它不能解决我的问题。
    【解决方案3】:

    尚未从 Google 看到任何关于此的确切信息。他们常常羞于解释这些问题。其中一个线程确实提到了数据存储迁移。看看有没有帮助;

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

    【讨论】:

    • 我的应用程序已经在使用高复制数据存储。因此,MS 不能成为错误的原因。很抱歉没有在帖子中提及。
    • 我明白了。顺便说一句,我在使用 App Engine 时遇到了两种奇怪的行为。 1) 暂时无法进入我的应用程序的日志 2) 无法使用该应用程序从数据存储中删除任何内容。我在应用程序中重新部署,一段时间后一切正常。正如您所说,您的问题刚刚出现,它可能会自行消失。只有谷歌可以回答为什么会这样。万事如意
    • 感谢您的信息。但是,Web 界面对我来说确实很好用。重新部署也无助于修复错误。这也是我的第一个猜测。再次感谢。
    猜你喜欢
    • 2011-12-03
    • 1970-01-01
    • 2020-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多