【发布时间】:2011-06-24 13:07:48
【问题描述】:
我们突然开始在这样的队列操作中看到“系统调用中断”:
Exception in thread Thread-2:
Traceback (most recent call last):
[ . . . ]
result = self.pager.results.get(True, self.WAIT_SECONDS)
File "/usr/lib/python2.5/site-packages/processing-0.52-py2.5-linux-x86_64.egg/processing/queue.py", line 128, in get
if not self._poll(block and (deadline-time.time()) or 0.0):
IOError: [Errno 4] Interrupted system call
这是最近进行了安全更新的 Fedora 10 / Python 2.5 机器。在此之前,我们的软件已经运行了大约一年而没有发生任何事故,现在它每天都在崩溃。
捕获此异常并重试队列操作是否正确/必要?
我们没有设置任何信号处理程序,但这是一个 Tkinter 应用程序,也许它设置了一些。清除 SIGINT 处理程序是否安全,这会解决问题吗?谢谢。
【问题讨论】:
-
显而易见,但更新后突然回归听起来可能是您所依赖的软件包中的错误。您是否调查过更新更改了什么?
-
好主意,我检查了 yum.log 并且有 580 个更新包。 Python 似乎都不是问题。我们有 Fedora 12 和 13 机器,它们似乎在工作。如果问题是特定于“Fedora 10 + 更新”,我愿意考虑更新到最新的 Fedora。
-
我们现在已经在 Fedora 14 机器 Python 2.7 上看到了这一点。
-
我面临同样的问题,@Philip 感谢 googlegroup 链接。这对理解潜在问题非常有帮助。
标签: python queue multiprocessing