GAE NDB恢复失败,并且#34;联系数据存储区时出现意外错误"

时间:2016-11-19 18:25:53

标签: google-app-engine backup google-cloud-datastore

我以前经常备份和恢复我的NDB数据存储区,经常还原到另一个项目,我将测试新版本的应用程序。到目前为止,它运作良好。

现在,Ndb恢复操作以系统方式失败,并在日志中跟踪:

Traceback (most recent call last):
  File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/_internal/mapreduce/handlers.py", line 526, in handle
    ctx.flush()
  File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/_internal/mapreduce/context.py", line 455, in flush
    pool.flush()
  File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/ext/datastore_admin/utils.py", line 695, in flush
    datastore._GetConnection()._reserve_keys(self.keys)
  File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/datastore/datastore_rpc.py", line 2170, in _reserve_keys
    self._async_reserve_keys(None, keys).get_result()
  File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/datastore/datastore_rpc.py", line 921, in get_result
    results = self.__rpcs[0].get_result()
  File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/api/apiproxy_stub_map.py", line 613, in get_result
    return self.__get_result_hook(self)
  File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/datastore/datastore_rpc.py", line 2211, in __reserve_keys_hook
    self.check_rpc_success(rpc)
  File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/datastore/datastore_rpc.py", line 1371, in check_rpc_success
    raise _ToDatastoreError(err)
InternalError: Unexpected error contacting datastore (2016-11-19T18:01:37+00:00).

有任何线索吗?我可能错过了一些东西,但是我发誓,与上周这种恢复工作正常的情况相比,没有任何改变。

为了防止我的最新备份出现问题,我尝试恢复旧备份,该备份已成功恢复了几次。恢复时出现相同的InternalError。包括在一个全新的GAE项目中。

现在已经尝试了很多次,我发现了意外的错误'总是发生在同一个实体上。整个备份/恢复涉及大约30种不同的类型,其中5种因所述错误而失败。其中,在某些情况下,有些实体已经恢复,但并非全部,在其他情况下,没有实体已经恢复。它就像某些特定实体可能对异常负责。但是,再一次,这也适用于过去曾有效的旧备份。

与Ndb备份和还原相关的问题很少(答案仍然较少)。不是Ndb应用程序使用备份吗?

1 个答案:

答案 0 :(得分:1)

所以关于这一点的最后一句话并没有隐藏在一长串评论的底部,我会发布一个答案。

这似乎是几天/几周后出现的错误,一些像我这样的用户在恢复到另一个项目时遇到过。

Google项目团队做得很好,及时解决了问题。非常感谢@Ed Davisson。