Update patch set 6

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(),

Patch-set: 6
Reviewer: Gerrit User 31039 <31039@4a232e18-c5a9-48ee-94c0-e04e7cca6543>
This commit is contained in:
Gerrit User 31039 2021-09-15 21:25:21 +00:00 committed by Gerrit Code Review
parent 9d15c75ab5
commit 6194256548

Diff Content Not Available