2011-07-04 5 views
2

우리는 상당히 큰 Plone 인스턴스가 자체 탑재 지점에서 실행되고 있습니다. ZMI 인터페이스는 데이터베이스 크기를 7101.4M으로 표시합니다. Relstorage zodbpack.py 스크립트를 사용하여 7 일이 넘은 개체를 제거하여 데이터베이스를 매주 실행합니다.relstorage zodb 팩 중에 "sys.excepthook의 오류로 시작된 스레드에서 처리되지 않은 예외"

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 작업이 실행되는 쉘 스크립트로 출력됩니다 : 지난 2 주 팩을 실행하는 cron 작업은 다음과 같은 출력을 가지고있다.

팩 이후에 데이터베이스 크기가 줄어들어 뭔가를하는 것처럼 보입니다. 나는이 오류를 더 디버깅하는 방법에 대해 약간의 상실감이있다.

오랜 기간 동안 팩은 정상적으로 실행되었습니다. 그런 다음 데이터베이스의 연결 매개 변수를 변경했으나 cron 작업에서 업데이트하지 않으므로 11 주 동안 팩이 실행되지 않았습니다. 이 오류가 나타나기 전에 두 번 성공적으로 실행되었습니다. 팩을 실행하지 않은 오랜 기간 동안 오류와 관련이있을 수 있습니까?

도움을 주시면 감사하겠습니다.

우리는 실행중인 :

  • 플론 (Plone) 3.3.5
  • 조프 2.10.11
  • Relstorage 1.4.1
  • ZODB 3.8.4 폴링
+0

이 문제는 이제 모두 사라진 것처럼 보입니다. – scarba05

답변

2

오류를 RelStorage가 아닌 Python과 관련이 있습니다. 관련이 있다고 생각되는 버그 리포트는 http://bugs.python.org/issue1722344을 참조하십시오. 이 버그는 Python 2.5 및 2.6에도 적용되지만 Python 2.4에도 적용될 수 있습니다. 파이썬 2.4가 최신 버전으로 업그레이드되었는지 확인하십시오.

어떤 경우이든 메시지는이 경우 무해합니다. 패킹은 하나의 쓰레드만을 사용하며, 마지막에 성공 메시지를 얻습니다 (팩이 성공한 경우에만 Sun Jun 26 09:56:31 BST 2011 finished pack이 표시됩니다).

RelStorage 1.5.0으로 업그레이드 할 수도 있습니다 (지난 주에 출시되었습니다). 패킹은 대규모 데이터베이스와 바쁜 사이트를 처리하기 위해 크게 향상되었습니다.

+0

성공 메시지는 내 셸 스크립트에서 출력되며 팩의 성공 여부와 상관없이 출력됩니다. 우리는 2.4, 2.4.6 용 최신 Python 릴리스를 사용하고 있습니다. – scarba05

+0

죄송합니다, 당신 말이 맞습니다. 적절한 메시지는 "INFO pack : finished successfull"입니다. 여전히 버그 리포트에서'squelch_exception' 패치를 시도해 볼 수 있습니다. 또한 메시지 다음에 PACK_OBJECT 테이블에 행이 있습니까? 그렇다면 포장이 완료되지 않았고 완료되지 않았습니다. –

+0

PACK_OBJECT가 비어 있습니다. 나는 내 cron 작업이 출력에서 ​​누락 된 비트가있는 이유 인 스탠드 오류를 삼키는 것을 깨달았다. 나는 다음주 일요일에 그 결과물을 얻을 수 있도록 그 일자리를 업데이트했고 그 후에이 소식을 업데이트 할 것입니다. 이것은 출구에서 일어나는 것처럼 들리므로 걱정할 필요가 없습니다. 나는이 때문에 파이썬을 패치 할 생각이 없다. – scarba05