“由 sys.excepthook 中的错误启动的线程中出现未处理的异常”在 relstorage zodb pack 期间
我们有一个相当大的 Plone 实例在其自己的挂载点上运行。 ZMI界面列出数据库的大小为7101.4M。我们使用 Relstorage zodbpack.py 脚本每周运行一次数据库包,删除超过 7 天的对象。最近两周,运行该包的 cron 作业输出了以下内容:
Sun Jun 26 07:00:38 BST 2011 packing cms mount
/home/zope/home/parts/zope2/lib/python/zope/configuration/xmlconfig.py:323: DeprecationWarning: zope.app.annotation has moved to zope.annotation. Import of zope.app.annotation will become unsupported in Zope 3.5
__import__(arguments[0])
/home/zope/home/eggs/p4a.common-1.0.7-py2.4.egg/p4a/common/configure.zcml:19: DeprecationWarning: The five:localsite directive is deprecated and will be removed in Zope 2.12.
See Five/doc/localsite.txt .
<five:localsite class=".Portal.PloneSite" />
/home/zope/home/parts/zope2/lib/python/zope/configuration/fields.py:417: UserWarning: You did not specify an i18n translation domain for the 'description' field in /home/zope/home/eggs/Products.CMFSquidTool-1.5.1-py2.4.egg/Products/CMFSquidTool/configure.zcml
warnings.warn(
/home/zope/home/parts/zope2/lib/python/zope/configuration/fields.py:417: UserWarning: You did not specify an i18n translation domain for the 'title' field in /home/zope/home/eggs/Products.CMFSquidTool-1.5.1-py2.4.egg/Products/CMFSquidTool/configure.zcml
warnings.warn(
Unhandled exception in thread started by
Error in sys.excepthook:
Original exception was:
Sun Jun 26 09:56:31 BST 2011 finished pack
第一行和最后一行由 cron 作业运行的 shell 脚本输出。
打包后数据库大小减小,因此看起来它正在做一些事情。我对如何进一步调试此错误感到有点茫然。
在很长一段时间内,该包运行正常。然后,我们更改了数据库的连接参数,但忘记在 cron 作业上更新它们,因此该包在 11 周内没有运行。在出现此错误之前,它成功运行了两次 - 长时间没有运行包是否与该错误有关?
任何帮助将不胜感激。
我们正在运行:
- Plone 3.3.5
- Zope 2.10.11
- Relstorage 1.4.1
- ZODB 3.8.4-polling
We have a reasonably large Plone instance running on its own mount point. The ZMI interface lists the size of the database as 7101.4M. We run a weekly pack of the database using the Relstorage zodbpack.py script, removing objects older than 7 days. The last two weeks the cron job that runs the pack has output the following:
Sun Jun 26 07:00:38 BST 2011 packing cms mount
/home/zope/home/parts/zope2/lib/python/zope/configuration/xmlconfig.py:323: DeprecationWarning: zope.app.annotation has moved to zope.annotation. Import of zope.app.annotation will become unsupported in Zope 3.5
__import__(arguments[0])
/home/zope/home/eggs/p4a.common-1.0.7-py2.4.egg/p4a/common/configure.zcml:19: DeprecationWarning: The five:localsite directive is deprecated and will be removed in Zope 2.12.
See Five/doc/localsite.txt .
<five:localsite class=".Portal.PloneSite" />
/home/zope/home/parts/zope2/lib/python/zope/configuration/fields.py:417: UserWarning: You did not specify an i18n translation domain for the 'description' field in /home/zope/home/eggs/Products.CMFSquidTool-1.5.1-py2.4.egg/Products/CMFSquidTool/configure.zcml
warnings.warn(
/home/zope/home/parts/zope2/lib/python/zope/configuration/fields.py:417: UserWarning: You did not specify an i18n translation domain for the 'title' field in /home/zope/home/eggs/Products.CMFSquidTool-1.5.1-py2.4.egg/Products/CMFSquidTool/configure.zcml
warnings.warn(
Unhandled exception in thread started by
Error in sys.excepthook:
Original exception was:
Sun Jun 26 09:56:31 BST 2011 finished pack
The first and last lines are output by the shell script the cron job runs.
The database size decreases after the pack so it appears it is doing something. I'm at a bit of a loss as to how to debug this error further.
For a long period the pack was running OK. We then changed the connection parameters for the database but forgot to update them on the cron job and so the pack wasn't run for 11 weeks. It ran successfully twice before this error appeared - could the long period of no packs being run have something to do with the error?
Any help would be much appreciated.
We're running:
- Plone 3.3.5
- Zope 2.10.11
- Relstorage 1.4.1
- ZODB 3.8.4-polling
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
该错误与 Python 有关,与 RelStorage 无关。请参阅 http://bugs.python.org/issue1722344 获取我认为与此处相关的错误报告。该错误适用于 Python 2.5 和 2.6,但也可能适用于 Python 2.4。如果尚未将 Python 2.4 升级到最新版本,请尝试将其升级到最新版本。
无论如何,该消息在这种情况下是无害的。打包仅使用一个线程,并且您在最后会收到成功消息(
Sun Jun 26 09:56:31 BST 2011 finish pack
仅在打包成功时才会显示)。您还可以尝试升级到 RelStorage 1.5.0(上周发布);打包得到显着改进,可以处理更大规模的数据库和繁忙的站点。
The error is related to Python, not RelStorage. See http://bugs.python.org/issue1722344 for the bugreport I think is relevant here. That bug applies to Python 2.5 and 2.6, but may also be applicable to Python 2.4. Try upgrading Python 2.4 to the latest if it is not already.
In any case, the message is harmless in this case. Packing only uses one thread, and you do get the success message at the end (
Sun Jun 26 09:56:31 BST 2011 finished pack
will only be displayed if the pack was successful).You could also try upgrading to RelStorage 1.5.0 (it came out last week); packing was significantly improved to handle larger scale databases and busy sites.