首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Appengine Appstats导致死锁

Appengine Appstats导致死锁
EN

Stack Overflow用户
提问于 2013-12-20 17:03:33
回答 1查看 265关注 0票数 3

我在gae上有一个Flask应用程序,它工作正常。我正在尝试添加Appstats支持,但一旦启用,就会遇到死锁。

当我尝试使用登录的用户ndb模型(它被称为current_user,就像在Flask- LocalProxy中所做的那样,给你提供更多细节)来设置一个werkzeug登录时,这个死锁显然发生了。

错误是:

代码语言:javascript
复制
RuntimeError: Deadlock waiting for <Future 104c02f50 created by get_async(key.py:545) for tasklet get(context.py:612) suspended generator get(context.py:645); pending>

LocalProxy对象是使用以下语法设置的(根据Werkzeug文档):

代码语言:javascript
复制
current_user = LocalProxy(lambda: _get_user())

_get_user()生成一个简单的同步查询ndb.query。

提前感谢您的帮助。

EN

回答 1

Stack Overflow用户

发布于 2014-04-29 22:18:22

我今天遇到了这个问题。在我的例子中,获取用户详细信息的请求似乎触发了appstats。Appstats然后遍历调用堆栈,并将所有局部变量的详细信息存储在每个堆栈帧中。

会话本身位于其中一个堆栈帧中,因此appstats尝试将其打印出来,并再次触发用户获取代码。

提出了两个“解决方案”,尽管它们都不是很好。

  • 禁用appstats中局部变量的altogether.
  • Disable日志记录。

我目前选择了后者。appstats允许您在appengine_config.py文件中配置各种设置。通过添加以下内容,我能够避免记录本地变量详细信息(这会阻止代码触发错误):

代码语言:javascript
复制
appstats_MAX_LOCALS = 0
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20699828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档