"celery worker" crashes on startup when python-librabbitmq is used
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
python-librabbitmq (Ubuntu) |
Confirmed
|
Undecided
|
Unassigned |
Bug Description
On a vanilla trusty install with rabbitmq-server and celeryd installed, "celery worker" crashes as follows:
$ dpkg-query -W python-librabbitmq rabbitmq-server python-amqp librabbitmq1 celeryd
celeryd 3.1.6-1ubuntu1
librabbitmq1 0.4.1-1
python-amqp 1.3.3-1ubuntu1
python-librabbitmq 1.0.3-0ubuntu1
rabbitmq-server 3.2.4-1
$ celery worker
[2014-08-06 05:19:00,142: WARNING/
Starting from version 3.2 Celery will refuse to accept pickle by default.
The pickle serializer is a security concern as it may give attackers
the ability to execute any command. It's important to secure
your broker from unauthorized access when using pickle, so we think
that enabling pickle should require a deliberate action and not be
the default choice.
If you depend on pickle then you should set a setting to disable this
warning and to be sure that everything will continue working
when you upgrade to Celery 3.2::
CELERY_
You must only enable the serializers that you will actually use.
warnings.
-------------- celery@
---- **** -----
--- * *** * -- Linux-3.
-- * - **** ---
- ** ---------- [config]
- ** ---------- .> broker: amqp://
- ** ---------- .> app: default:
- ** ---------- .> concurrency: 1 (prefork)
- *** --- * --- .> events: OFF (enable -E to monitor this worker)
-- ******* ----
--- ***** ----- [queues]
-------------- .> celery exchange=
Segmentation fault (core dumped)
If I remove python-librabbitmq so that celery falls back to python-amqp, "celery worker" starts up and works correctly.
I have also discovered that a python-rabbitmq built from version 1.5.2 sources with its embedded copy of rabbitmq-c 0.5.0 also works correctly.
I have attached a backtrace but it is not too useful as python-librabbitmq does not appear to make debug symbols available, and it occupies the second and third frames in the stack when the crash happens.
Status changed to 'Confirmed' because the bug affects multiple users.