0

Appstats 抛出 TypeError 异常并导致 appstats/formatting.py 中的服务器崩溃。似乎以 None 为键对字典进行排序。关闭appstats,然后它就可以正常工作了。

这是调用堆栈,

  File "/base/data/home/runtimes/python27_experiment/python27_lib/versions/1/google/appengine/ext/ndb/context.py", line 1107, in _memcache_get_tasklet
    rpc=rpc)
  File "/base/data/home/runtimes/python27_experiment/python27_lib/versions/1/google/appengine/api/memcache/__init__.py", line 616, in get_multi_async
    user_key)
  File "/base/data/home/runtimes/python27_experiment/python27_lib/versions/1/google/appengine/api/memcache/__init__.py", line 384, in _make_async_call
    rpc.make_call(method, request, response, get_result_hook, user_data)
  File "/base/data/home/runtimes/python27_experiment/python27_lib/versions/1/google/appengine/api/apiproxy_stub_map.py", line 528, in make_call
    self.__service, method, request, response, self.__rpc)
  File "/base/data/home/runtimes/python27_experiment/python27_lib/versions/1/google/appengine/api/apiproxy_stub_map.py", line 206, in Call
    function(service, call, request, response, rpc)
  File "/base/data/home/runtimes/python27_experiment/python27_lib/versions/1/google/appengine/ext/appstats/recording.py", line 1441, in pre_call_hook
    recorder_proxy.record_rpc_request(service, call, request, response, rpc)
  File "/base/data/home/runtimes/python27_experiment/python27_lib/versions/1/google/appengine/ext/appstats/recording.py", line 566, in record_rpc_request
    self.get_call_stack(trace)
  File "/base/data/home/runtimes/python27_experiment/python27_lib/versions/1/google/appengine/ext/appstats/recording.py", line 879, in get_call_stack
    if not self.get_frame_summary(frame, trace):
  File "/base/data/home/runtimes/python27_experiment/python27_lib/versions/1/google/appengine/ext/appstats/recording.py", line 937, in get_frame_summary
    x.set_value(format_value(value))
  File "/base/data/home/runtimes/python27_experiment/python27_lib/versions/1/google/appengine/ext/appstats/recording.py", line 995, in format_value
    return formatting._format_value(val, config.MAX_REPR, config.MAX_DEPTH)
  File "/base/data/home/runtimes/python27_experiment/python27_lib/versions/1/google/appengine/ext/appstats/formatting.py", line 265, in _format_value
    series = sorted(val)
TypeError: can't compare datetime.date to NoneType

这是上下文,

  1. 带有 Django 的 GAE 标准环境。
  2. 它在几个异步调用仍在运行时崩溃。

它是一个错误吗?

4

1 回答 1

0

当 None 是字典中的键时,就会出现问题。使用字符串 'None' 替换 None 可以解决问题。

于 2017-08-09T06:51:28.950 回答