jasmin
jasmin copied to clipboard
Jasmin does not work with "durable" rabbit queues.
I've tried to verify whether Jasmin can work with Clustered RabbitMQ and it looks like it cannot. Creating a queue with type "Quorum" applies also a "feature = durable". Jasmin cannot connect to queues created with this arguments.
Log from main Jasmin process (strangely not from amqpp-client so issues with it are not raised to main process):
2021-09-30 XX:XX:XX ERROR 1 Cannot start deliverSmThrower: Method(name=close, id=40) (406, "PRECONDITION_FAILED - inequivalent arg 'durable' for queue 'deliver_sm_thrower' in vhost '/': received 'false' but current is 'true'", 50, 10) content = None
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/txamqp/protocol.py", line 90, in invoke
resp = (yield self.responses.get()).payload
File "/usr/local/lib/python3.9/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks
current.result = callback(current.result, *args, **kw)
File "/usr/local/lib/python3.9/site-packages/txamqp/queue.py", line 34, in _raise_if_closed
raise Closed()
txamqp.queue.Closed
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/bin/jasmind.py", line 429, in start
yield self.startdeliverSmThrowerService()
File "/usr/local/lib/python3.9/site-packages/twisted/internet/defer.py", line 1416, in _inlineCallbacks
result = result.throwExceptionIntoGenerator(g)
File "/usr/local/lib/python3.9/site-packages/twisted/python/failure.py", line 512, in throwExceptionIntoGenerator
return g.throw(self.type, self.value, self.tb)
File "/usr/local/lib/python3.9/site-packages/jasmin/routing/throwers.py", line 172, in addAmqpBroker
yield self.amqpBroker.named_queue_declare(queue=self.queueName)
File "/usr/local/lib/python3.9/site-packages/twisted/internet/defer.py", line 1416, in _inlineCallbacks
result = result.throwExceptionIntoGenerator(g)
File "/usr/local/lib/python3.9/site-packages/twisted/python/failure.py", line 512, in throwExceptionIntoGenerator
return g.throw(self.type, self.value, self.tb)
File "/usr/local/lib/python3.9/site-packages/txamqp/protocol.py", line 102, in invoke
self._raise_closed(self.reason)
File "/usr/local/lib/python3.9/site-packages/txamqp/protocol.py", line 123, in _raise_closed
raise ChannelClosed(reason)
txamqp.client.ChannelClosed: Method(name=close, id=40) (406, "PRECONDITION_FAILED - inequivalent arg 'durable' for queue 'deliver_sm_thrower' in vhost '/': received 'false' but current is 'true'", 50, 10) content = None
2021-09-30 XX:XX:XX ERROR 1 Cannot start DLRThrower: Method(name=close, id=40) (406, "PRECONDITION_FAILED - inequivalent arg 'durable' for queue 'deliver_sm_thrower' in vhost '/': received 'false' but current is 'true'", 50, 10) content = None
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/txamqp/protocol.py", line 90, in invoke
resp = (yield self.responses.get()).payload
File "/usr/local/lib/python3.9/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks
current.result = callback(current.result, *args, **kw)
File "/usr/local/lib/python3.9/site-packages/txamqp/queue.py", line 34, in _raise_if_closed
raise Closed()
txamqp.queue.Closed
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/bin/jasmind.py", line 429, in start
yield self.startdeliverSmThrowerService()
File "/usr/local/lib/python3.9/site-packages/twisted/internet/defer.py", line 1416, in _inlineCallbacks
result = result.throwExceptionIntoGenerator(g)
File "/usr/local/lib/python3.9/site-packages/twisted/python/failure.py", line 512, in throwExceptionIntoGenerator
return g.throw(self.type, self.value, self.tb)
File "/usr/local/lib/python3.9/site-packages/jasmin/routing/throwers.py", line 172, in addAmqpBroker
yield self.amqpBroker.named_queue_declare(queue=self.queueName)
File "/usr/local/lib/python3.9/site-packages/twisted/internet/defer.py", line 1416, in _inlineCallbacks
result = result.throwExceptionIntoGenerator(g)
File "/usr/local/lib/python3.9/site-packages/twisted/python/failure.py", line 512, in throwExceptionIntoGenerator
return g.throw(self.type, self.value, self.tb)
File "/usr/local/lib/python3.9/site-packages/txamqp/protocol.py", line 102, in invoke
self._raise_closed(self.reason)
File "/usr/local/lib/python3.9/site-packages/txamqp/protocol.py", line 123, in _raise_closed
raise ChannelClosed(reason)
txamqp.client.ChannelClosed: Method(name=close, id=40) (406, "PRECONDITION_FAILED - inequivalent arg 'durable' for queue 'deliver_sm_thrower' in vhost '/': received 'false' but current is 'true'", 50, 10) content = None
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/bin/jasmind.py", line 439, in start
yield self.startDLRThrowerService()
txamqp.client.ChannelClosed: Method(name=close, id=40) (406, "PRECONDITION_FAILED - inequivalent arg 'durable' for queue 'deliver_sm_thrower' in vhost '/': received 'false' but current is 'true'", 50, 10) content = None
Steps to reproduce:
- Install Jasmin with RabbiMQ
- Start full stack once (Jasmin creates queues)
- Stop Jasmin.
- Log-in into RabbitMQ management panel, remove eg. "dlr_thrower" queue.
- Create it again but this time not as "classic" but as s "quorum" type. This applies two features.
- Start Jasmin again.