在我的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