【问题标题】:ZEO deadlocks on uWSGI in master mode主模式下 uWSGI 上的 ZEO 死锁
【发布时间】:2013-01-24 10:53:53
【问题描述】:

美好的一天!

我正在迁移到 uWSGI 部署。该项目一半在 ZOPE3 上,并使用 ZODB 和 ZEO 进行多路访问。如果我像这样启动 uwsgi 守护进程:

uwsgi_python27 --http :9090 --wsgi-file /path/to/file

一切正常。这是单进程模式。没有块或锁。 当我像这样启动应用程序时:

uwsgi_python27 --http :9090 --wsgi-file /path/to/file -p 3

一切都运行。这是预分叉模式。我们有很好的结果。但是有些请求会阻塞。我怀疑应用程序在新实例启动时会阻止 1 个请求。我有 2-3 个锁定请求。所有其他工作都很好。

但是当我这样开始时:

uwsgi_python27 --http :9090 --wsgi-file /path/to/file --master

应用启动,但未处理任何请求。当我 curl localhost:9090/some_page 它永远不会加载任何东西。没有 CPU 没有磁盘使用。它只是锁定。

是否有人知道可能导致这种情况的任何特定 ZEO 行为?如果我只运行 FileStorage,它会正常运行而不会出现任何死锁。 任何有关 uWSGI 行为的主模式的详细信息也将不胜感激。

【问题讨论】:

    标签: deadlock uwsgi zodb zope3


    【解决方案1】:

    好的。所以我设法启动了该死的东西。我怀疑,ZEO 的 rpc 与 linux 分叉不兼容。所以你只需要在分叉的进程中启动应用程序,而不是在分叉之前。

    请参阅lazy 或lazy-apps uwsgi 的配置选项。

    参考:http://uwsgi-docs.readthedocs.org/en/latest/ThingsToKnow.html

    【讨论】:

      猜你喜欢
      • 2018-03-16
      • 1970-01-01
      • 2012-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-29
      相关资源
      最近更新 更多