在我的Ubuntu 14.04 上, 使用"celery worker"命令启动celery worker时,遇到"Segmentation fault" (core dumped),如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
jay@jay-linux:~/workspace/aew$ celery -A aew worker -------------- celery@jay-linux v3.1.13 (Cipater) ---- **** ----- --- * *** * -- Linux-3.13.0-24-generic-x86_64-with-Ubuntu-14.04-trusty -- * - **** --- - ** ---------- [config] - ** ---------- .> app: aew:0x7fd4b547af90 - ** ---------- .> transport: amqp://aew:**@192.168.217.188:5672/aew - ** ---------- .> results: amqp - *** --- * --- .> concurrency: 4 (prefork) -- ******* ---- --- ***** ----- [queues] -------------- .> celery exchange=celery(direct) key=celery Segmentation fault (core dumped) |
后来发现时系统中的 python-librabbitmq的问题,遇到这个错误的系统中的python-librabbitmq版本为1.0.3-0ubuntu1,可用命令:dpkg -l | grep python-librabbitmq 来查询.
解决方案有2个:
1. 升级python-librabbitmq到新的版本,如 1.5.2 ,可以用通过.deb包或apt-get命令来升级,也可以用pip来安装.我用pip安装默认就到1.5.2版本了,如下:
1 2 |
jay@jay-linux:~$ sudo apt-get remove python-librabbitmq #删除原来的包 jay@jay-linux:~$ sudo pip install librabbitmq |
2. 直接删除python-librabbitmq包,这样celery会回到使用python-amqp包,这样也时可以的.
其他人也发现过这个问题,见:
https://bugs.launchpad.net/ubuntu/+source/python-librabbitmq/+bug/1353269