我有一个不断运行各种python脚本作为工作人员的系统 - 它们在退出时重新启动,导致每个脚本每天运行几百次。一切都很好,除了每隔几天其中一个会随机崩溃并出现以下错误
XXX ambiguity!\nXXX ambiguity!\nXXX ambiguity!\nXXX ambiguity!\n...
XXX ambiguity!\nXXX ambiguity!\nXXX ambiguity!\nXXX ambiguity!\n...
Error processing line 1 of /usr/lib/python2.7/dist-packages/zope.interface-3.6.1-nspkg.pth:
Traceback (most recent call last):
File \"/usr/lib/python2.7/site.py\", line 157, in addpackage
exec line
File \"<string>\", line 1
import sys,types,os; p = os.path.join(sys._getframe(1).f_locals['sitedir'], *('zope',)); ie = os.path.exists(os.path.join(p,'__init__.py')); m = not ie and sys.modules.setdefault('zope',types.ModuleType('zope')); mp = (m or []) and m.__dict__.setdefault('__path__',[]); (p not in mp) and mp.append(p)
SyntaxError: unexpected EOF while parsing
Remainder of file ignored
XXX ambiguity!\nXXX ambiguity!\nXXX ambiguity!\nXXX ambiguity!\n...
MemoryError
对不起,如果我把这条痕迹弄得一团糟,我的记录就会给它带来难看的东西。另请注意,我已截断XXX
行:XXX ambiguity!\n
实际上重复了一百次。
我不会在我自己的代码中的任何地方使用zope.interface
:它是作为龙卷风的依赖项安装的,更具体地说是tornado.twisted
,我也不使用它。虽然,我倾向于认为问题出在python上(或者我如何使用它来执行我的脚本),而指向zope.interface
的栈只是一种症状。
脚本本身使用/usr/bin/nice
运行,通常采用
#!/usr/bin/env python
from sharedlib import queue
import time
import logging
logger = logging.getLogger(__name__)
def main():
for item in queue.rest: # queue.rest yields from an immutable source
logger.info("An item in the queue: %s", item)
if __name__ == '__main__':
main()
time.sleep(600) # Used for throttling the rate of script execution
提前致谢 - 这一直在推动我的发展。