解决Plone死锁问题的现代方法是什么? [英] What's the modern way to solve Plone deadlock issues?

查看:93
本文介绍了解决Plone死锁问题的现代方法是什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我目前有一个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死锁问题的现代方法是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆