我目前有一个Plone 4.3.8网站,在其中编辑portlet会导致死锁.
I currently have a Plone 4.3.8 site where editing a portlet causes a deadlock.
我正在尝试找到解决此问题的工具,但大多数死锁工具无法正常工作&从至少运行的那些程序中,我没有得到良好的信息(IMO).
I'm trying to find tools to fix this, but most deadlock tools don't work & I'm not getting good information (IMO) from those that at least run.
我尝试过:
- z3c.deadlockdebugger =>无法访问堆栈跟踪
- ZopeHealthWatcher =>在命令行(或网页)上看不到结果
- Products.LongRequestLogger =>到目前为止可能是最好的,它给了我一些日志输出-但是堆栈跟踪的重点是Diazo代码,但是当Diazo不在范围内(针对127.0.0.1运行)时,仍然会出现问题
- gdb附加-刚刚让我进入了C代码
- winpdb =>不能以与gdb相同的方式附加到正在运行的进程(仅适用于进程开始时意在通过Winpdb进行附加)
- Products.signalstack (或Products.signalstacklogger)=> USR1信号刚刚关闭zope的过程!
- z3c.deadlockdebugger => can't get to a stacktrace
- ZopeHealthWatcher => can't see the results on command line (or webpage)
- Products.LongRequestLogger => perhaps the best so far, gives me some log output - but it's stack traces focus on Diazo code, but the problem still occurs when Diazo isn't in scope (running against 127.0.0.1)
- gdb attach - just landed me in C code
- winpdb => it can't attach to running processes in the same way that gdb can (only to processes started with the intention of attachment by winpdb)
- Products.signalstack (OR Products.signalstacklogger) => USR1 signal just shuts down a zope process!
注意:z3c.deadlockdebugger(及其相关内容)需要检出源代码删除线程框架依赖性.
Note: z3c.deadlockdebugger (and things that depend on it) needs checked out source code to drop the threadframe dependency.
我的情况似乎与产品升级有关-可能是plone.app.contenttypes或plone.app.multilingual中的一个或两个,一个空网站没有这个问题,但是显然我需要我的网站数据!
My situation seems to be linked to product upgrades - probably one or both of either plone.app.contenttypes or plone.app.multilingual, an empty site doesn't have this issue, but I obviously I need my site data!
我应该怎么做才能做到这一点?
What should I do to progress this?
我相信Maurits的回答是最正确的,但在我的情况下却不起作用.我最终要做的是使用pdb来跟踪代码的挂起点(发生在plone.app.debugtoolbar中)
I believe Maurits answer to be the most correct one, but it didn't work in my case. What I ended up doing was using pdb to track down the point at which the code was hanging (in plone.app.debugtoolbar as it happens)
推荐答案您说在使用Products.signalstack时,使用USR1信号会关闭Zope.但是不需要任何特殊的程序包,所以我想知道添加信号栈是否会具有关闭Zope的副作用.
You say that using the USR1 signal shuts down Zope when using Products.signalstack. But no special packages should be necessary, so I wonder if adding signalstack has this side effect of shutting down Zope.
至少对我而言,几周前,它在Plone 4.3.something网站上运行良好:
At least for me, a few weeks ago, this worked fine on a Plone 4.3.something site:
kill -USR1 $(cat var/zeoclient.pid)更多推荐
解决Plone死锁问题的现代方法是什么?
发布评论