我们正在使用
OS Ubuntu 12.04.4 LTS
celery==3.0.24
django-celery==3.0.23
billiard==3.3.0.18
我们有一些任务失败与"存在与信号11",下面是日志文件的副本。
芹菜正在使用superord实例运行,设置如下
manage.py celery worker -E -B --loglevel=info
请告知,什么可能导致这种情况发生?我如何调试根本原因?
[2014-07-02 15:00:44,765: ERROR/MainProcess] Process 'Worker-2' pid:23317 exited with 'signal 11 (SIGSEGV)'
[2014-07-02 15:00:44,797: ERROR/MainProcess] Task mbox.retrieve_by_message_id[e70fc4f9-585e-4993-a43b-35942052bf2a] raised unexpected: WorkerLostError('Worker exited prematurely: signal 11 (SIGSEGV).',)
Traceback (most recent call last):
File "/home/ubuntu/.virtualenvs/paribus/local/lib/python2.7/site-packages/billiard/pool.py", line 1170, in mark_as_worker_lost
human_status(exitcode)),
WorkerLostError: Worker exited prematurely: signal 11 (SIGSEGV).
根据我们的使用情况,相同的代码在从Cellary任务中运行时被杀死,而在从Python视图中运行时不会被杀死
当我们在Python视图中运行SQL命令时,如:video = video .objects.get(pk=1),它可以正常工作。然而,如果在定义为celery的@shared_task的方法中启动,它会死亡并杀死Python, ERROR/MainProcess] Process 'ForkPoolWorker-7' pid:25512 exit with 'signal 11 (SIGSEGV)'
更多信息(如果有人可以帮助,请这样做):在REDIS+RABBITMQ+芹菜中访问Postgres数据库,使用'信号11 (SIGSEGV)杀死Python任务