AppStats中的TypeError

时间:2017-08-08 07:13:30

标签: python django google-app-engine appstats

Appstats抛出TypeError异常并导致appstats / formatting.py中的服务器崩溃。它似乎用无键作为关键字排序。关闭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. 当多个异步调用仍在运行时崩溃。
  3. 这是一个错误吗?

1 个答案:

答案 0 :(得分:0)

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