我目前有一个Plone 4.3.8网站,编辑portlet导致死锁。
我正在尝试找到解决此问题的工具,但大多数死锁工具无法正常工作。我从那些至少跑步的人那里得不到好的信息(IMO)。
我试过了:
注意:z3c.deadlockdebugger(以及依赖它的东西)需要签出source code以删除线程框架依赖项。
我的情况似乎与产品升级有关 - 可能是plone.app.contenttypes或plone.app.multilingual中的一个或两个,空站点没有此问题,但我显然需要我的站点数据!
我该怎么做才能取得进展?
编辑:
我相信Maurits的答案是最正确的,但在我的情况下并不起作用。我最终做的是使用pdb来追踪代码挂起的位置(在plone.app.debugtoolbar中发生)
答案 0 :(得分:5)
你说在使用Products.signalstack时使用USR1
信号会关闭Zope。但是不需要特殊的包,所以我想知道添加signalstack是否会产生关闭Zope的副作用。
至少对我而言,几周前,这在Plone 4.3.something网站上运行良好:
kill -USR1 $(cat var/zeoclient.pid)
答案 1 :(得分:2)
虽然@maurits的答案是对的(也是最简单的答案),但有时我会看到kill
命令导致的追溯问题:有时会在事件日志中找到,有时候会在shell上找到。
我更喜欢将buildout与haufe.requestmonitoring集成,同时配置monitor long running requests feature。 您将在事件日志中看到死锁回溯,并激活用于监控Plone低性能的工具。