Python多进程的神秘异常

时间:2014-06-11 01:34:58

标签: python exception multiprocess

我有一个使用多进程的Python 2.6.6应用程序。我使用队列将I / O繁重的工作分配给子进程。该应用程序一直在运行CentOS的x86机器上运行,作为日常cron作业的一部分,持续数月没有问题。我已经将机器升级到x64(它是一个linode)并且问题就开始了。

我看到的问题只是推送到队列的工作的一部分完成。该计划完成。我也在cron输出中看到了这一点:

Traceback (most recent call last):
  File "/usr/lib64/python2.6/multiprocessing/queues.py", line 242, in _feed

这是违规代码,沿着LHS的行号:

237                         if wacquire is None:
238                             send(obj)
239                         else:
240                             wacquire()
241                             try:
242                                 send(obj)
243                             finally:
244                                 wrelease()
245                 except IndexError:
246                     pass
247         except Exception, e:
248             # Since this runs in a daemon thread the resources it uses
249             # may be become unusable while the process is cleaning up.
250             # We ignore errors which happen after the process has
251             # started to cleanup.
252             try:
253                 if is_exiting():
254                     info('error in queue thread: %s', e)
255                 else:
256                     import traceback
257                     traceback.print_exc()
258             except Exception:
259                 pass

所以我认为例外是在第242行提出的,然后在257的声明中打印出来。我是对的吗?

有人知道如何解决这个问题吗?

0 个答案:

没有答案