ask/kombu — Issue #88: Broken pipe errors
Author: theflow
Created: 2012-01-11 15:22:38+00:00
State: open

Hi,

I'm trying failure scenarios and although celery/kombu/amqplib (all on most recent version) is supposed to reconnect on connections failures I sometimes get into a weird state, where I only get "Broken pipe" exceptions and it never reconnects.

The backtrace looks like this:

Traceback (most recent call last):
File "/Users/flo/Projects/podio/api/src/hoist/services/TaskSession.py", line 79, in commit
result = task_set.apply_async(connect_timeout=1)
File "/Users/flo/Projects/podio/api/.virtualenv/lib/python2.7/site-packages/celery/task/sets.py", line 174, in apply_async
pub = publisher or self.Publisher(connection=conn)
File "/Users/flo/Projects/podio/api/.virtualenv/lib/python2.7/site-packages/celery/app/amqp.py", line 325, in TaskPublisher
return TaskPublisher(*args, **self.app.merge(defaults, kwargs))
File "/Users/flo/Projects/podio/api/.virtualenv/lib/python2.7/site-packages/celery/app/amqp.py", line 157, in __init__
super(TaskPublisher, self).__init__(*args, **kwargs)
File "/Users/flo/Projects/podio/api/.virtualenv/lib/python2.7/site-packages/kombu/compat.py", line 57, in __init__
super(Publisher, self).__init__(connection, self.exchange, **kwargs)
File "/Users/flo/Projects/podio/api/.virtualenv/lib/python2.7/site-packages/kombu/messaging.py", line 69, in __init__
channel = channel.default_channel
File "/Users/flo/Projects/podio/api/.virtualenv/lib/python2.7/site-packages/kombu/connection.py", line 585, in default_channel
self._default_channel = self.channel()
File "/Users/flo/Projects/podio/api/.virtualenv/lib/python2.7/site-packages/kombu/connection.py", line 171, in channel
chan = self.transport.create_channel(self.connection)
File "/Users/flo/Projects/podio/api/.virtualenv/lib/python2.7/site-packages/kombu/transport/pyamqplib.py", line 235, in create_channel
return connection.channel()
File "/Users/flo/Projects/podio/api/.virtualenv/lib/python2.7/site-packages/kombu/transport/pyamqplib.py", line 144, in channel
return Channel(self, channel_id)
File "/Users/flo/Projects/podio/api/.virtualenv/lib/python2.7/site-packages/kombu/transport/pyamqplib.py", line 183, in __init__
super(Channel, self).__init__(*args, **kwargs)
File "/Users/flo/Projects/podio/api/.virtualenv/lib/python2.7/site-packages/amqplib/client_0_8/channel.py", line 82, in __init__
self._x_open()
File "/Users/flo/Projects/podio/api/.virtualenv/lib/python2.7/site-packages/amqplib/client_0_8/channel.py", line 469, in _x_open
self._send_method((20, 10), args)
File "/Users/flo/Projects/podio/api/.virtualenv/lib/python2.7/site-packages/amqplib/client_0_8/abstract_channel.py", line 76, in _send_method
method_sig, args, content)
File "/Users/flo/Projects/podio/api/.virtualenv/lib/python2.7/site-packages/amqplib/client_0_8/method_framing.py", line 252, in write_method
self.dest.write_frame(1, channel, payload)
File "/Users/flo/Projects/podio/api/.virtualenv/lib/python2.7/site-packages/amqplib/client_0_8/transport.py", line 165, in write_frame
frame_type, channel, size, payload, 0xce))
File "/usr/local/Cellar/python/2.7.2/lib/python2.7/socket.py", line 224, in meth
return getattr(self._sock,name)(*args)
error: [Errno 32] Broken pipe

Any ideas what could cause this. Is this a problem in kombi or in amqplib?