Update patch set 7

Patch Set 7:

> Patch Set 6:
> 
> > Patch Set 5:
> > 
> > > Patch Set 3:
> > > 
> > > > Patch Set 2:
> > > > am gonna do an update for that ( if that is ok )
> > > 
> > > Go for it, but I would suggest some tweaks because my previous comment does not handle everything as well as it should.
> > > 
> > > - Under the Connection class, set self.durable = (self.amqp_durable_queues or self.rabbit_quorum_queues)
> > > 
> > > - Still under Connection, all of the places where we use "durable=self.amqp_durable_queues" should instead be "durable=self.durable"
> > > 
> > > - The _get_queue_arguments function should also take an additional parameter for "durable" and set 'x-queue-type' *only* if durable=True (in addition to rabbit_quorum_queues=True as it is now).
> > > 
> > > This is all due to the fact that even if amqp_durable_queues is True, only a subset of queues are actually declared as durable.  For example, direct_send sets durable=False regardless of the value of amqp_durable_queues.  So the queue cannot have x-queue-type set in the direct_send case.
> > > 
> > > In the end I think this gets us what we want:  the behavior of rabbit_quorum_queues is identical to the behavior of amqp_durable_queues, except that 1-for-1 where we would have used a "classic+durable" queue previously, we now use "quorum+durable".  In the instances where previously we would have used "classic+non-durable", we continue to do so.
> > 
> > I tried this, and it didn't quite work because of:
> > 
> > Sep 15 16:43:35 fedora nova-compute[1343170]: ERROR nova amqp.exceptions.PreconditionFailed: Exchange.declare: (406) PRECONDITION_FAILED - inequivalent arg 'durable' for exchange 'nova' in vhost 'nova_cell1': received 'true' but current is 'false'
> > 
> > I think the key bit here is that on the '/' vhost, it's getting set correctly:
> > 
> > # rabbitmqctl list_exchanges --vhost / name durable | grep nova
> > nova    true
> > 
> > However on the 'nova_cell1' vhost, it's getting set to false:
> > 
> > # rabbitmqctl list_exchanges --vhost nova_cell1 name durable | grep nova
> > Listing exchanges for vhost nova_cell1 ...
> > nova    false
> > 
> > So it seems that something is not quite working in the case where cells are used.  It'll take me a bit to figure that out because I'm not very familiar on how it all works.
> 
> it make sense that everything should be durable but the fan out and DM so i changed the line blow
> 1178             durable=self._durable(),

i think u should run `./rabbitmqadmin  delete exchange  name='myexchange'` to delete the exchange since maybe its created on old run before change

Patch-set: 7
Reviewer: Gerrit User 31039 <31039@4a232e18-c5a9-48ee-94c0-e04e7cca6543>
This commit is contained in:
Gerrit User 31039 2021-09-15 22:40:00 +00:00 committed by Gerrit Code Review
parent b7dab78920
commit cee4e52556

Diff Content Not Available