)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f0b2610c0f80a32a7357c5706daee919bfeaad1f","unresolved":true,"context_lines":[{"line_number":17,"context_line":"The MessageUndeliverable would normally by raised only at a more low"},{"line_number":18,"context_line":"level than a 404 error, if a queue is missing we will catch a"},{"line_number":19,"context_line":"MessageUndeliverable exception, and if an exchange is missing then we"},{"line_number":20,"context_line":"will catch a 404 errors, so I think they can live together."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Also these changes drop the deactivation mechanism"},{"line_number":23,"context_line":"(direct_mandatory_flag) as it doesn\u0027t really make sense to ignore"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"1e3bfc90_9046d1a5","line":20,"updated":"2021-02-03 15:44:07.000000000","message":"Based on the below, I think this needs to be reworded. It confused me. I personally assumed that \u0027oslo_messaging.MessageUndeliverable\u0027 was a subset of \u0027rpc_amqp.AMQPDestinationNotFound\u0027 and all you were doing was improving the logging. It seems what you\u0027re actually doing is adding code to handle \u0027oslo_messaging.MessageUndeliverable\u0027 rather than relying on the application to do. How about something like this:\n\n  Currently, setting the \u0027[oslo_messaging] direct_mandatory_flag\u0027 config option\n  to \u0027True\u0027 (the default) will result in a \u0027MessageUndeliverable\u0027 exception\n  being raised when sending a reply if a RabbitMQ queue is missing. It was\n  the responsibility of the application to handle this exception, however,\n  many applications are not doing so. This has resulted in a number of bug\n  reports.\n\n  Start handling this error condition, using a retry loop to attempt to resend\n  the message and work around any temporary glitches. Since attempting to send\n  a reply will will no longer raise an exception, there is little benefit in\n  retaining the \u0027[oslo_messaging] direct_mandatory_flag\u0027 config option, since\n  users setting this to False will not benefit from the retry logic and\n  improved logging added here. As a result, this option is removed entirely.\n\nObviously you would replace the bit about the option being removed with something like \"This option is already deprecated and will be fully removed in a future release\" if we decide to keep it a for a while longer","commit_id":"57e6ba879ec1a19f142c50134367b4d512f223e7"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1b3e22e5fabedd1f975e3e14a2ab462142e142b8","unresolved":true,"context_lines":[{"line_number":28,"context_line":"These changes want to drop the mandatory flag feature ASAP to avoid"},{"line_number":29,"context_line":"adoption as services aren\u0027t not really ready to handle MessageUndeliverable"},{"line_number":30,"context_line":"exception on their own. Also we want to abandon it quickly to avoid"},{"line_number":31,"context_line":"backs and forths with related config and avoid to mislead users."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"[1] https://www.rabbitmq.com/channels.html"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"b0c22895_541b975b","line":31,"updated":"2021-02-03 14:43:06.000000000","message":"I still don\u0027t understand why it\u0027s essential that we remove this *right now*. It defaults to True (i.e. mandatory) and anyone overriding it is presumably doing so for a reason. I\u0027d like to wait 6 months for them to consume the version that deprecates this, to allow anyone to argue against deprecation if they have a good reason to keep it. I really don\u0027t think anyone will, but it\u0027s best practice to at least offer that option.\n\nTo be clear, if someone had set \u0027direct_mandatory_flag\u0027 to False then they won\u0027t see an exception, meaning this change only affects people using the default or setting it to True, right? I think that\u0027s okay.","commit_id":"57e6ba879ec1a19f142c50134367b4d512f223e7"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f0b2610c0f80a32a7357c5706daee919bfeaad1f","unresolved":true,"context_lines":[{"line_number":28,"context_line":"These changes want to drop the mandatory flag feature ASAP to avoid"},{"line_number":29,"context_line":"adoption as services aren\u0027t not really ready to handle MessageUndeliverable"},{"line_number":30,"context_line":"exception on their own. Also we want to abandon it quickly to avoid"},{"line_number":31,"context_line":"backs and forths with related config and avoid to mislead users."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"[1] https://www.rabbitmq.com/channels.html"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"665cf6b6_a51fb8eb","line":31,"in_reply_to":"93281253_e2cf6a16","updated":"2021-02-03 15:44:07.000000000","message":"So calls to \u0027_get_connection\u0027 [1] previously raised an exception and we now handle that, meaning behavior has changed for users as they no longer have to/can choose to handle this? That makes sense. What about users who set the flag to False though? Are we removing functionality by removing that option? I suspect the key difference is that setting it to False will cause it to silently fail, rather than failing after a couple of retries with logging (or with an exception as we saw previously)? If so, I guess the change in behavior is very slight and we could remove the option now. However, we\u0027re technically breaking the standard deprecation policy [2] so I still think it might be better to retain it and improve the wording of the deprecation message. I will let you make this call though.\n\n[1] https://review.opendev.org/c/openstack/oslo.messaging/+/771232/12/oslo_messaging/_drivers/amqpdriver.py#147\n[2] https://governance.openstack.org/tc/reference/tags/assert_follows-standard-deprecation.html","commit_id":"57e6ba879ec1a19f142c50134367b4d512f223e7"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"ea5867197620960bbdf628b920a621211834dcd5","unresolved":true,"context_lines":[{"line_number":28,"context_line":"These changes want to drop the mandatory flag feature ASAP to avoid"},{"line_number":29,"context_line":"adoption as services aren\u0027t not really ready to handle MessageUndeliverable"},{"line_number":30,"context_line":"exception on their own. Also we want to abandon it quickly to avoid"},{"line_number":31,"context_line":"backs and forths with related config and avoid to mislead users."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"[1] https://www.rabbitmq.com/channels.html"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"93281253_e2cf6a16","line":31,"in_reply_to":"b0c22895_541b975b","updated":"2021-02-03 15:04:48.000000000","message":"Well I\u0027m not against leave the flag available however it will not longer behave as described because our goal here is to looping over a timeout by using it.\n\nNow that these changes loop for a timeout when a MessageUndeliverable is raised, it is wrong to say that an exception will be raised. Originally this flag was designed to fail early by raising an exception (MessageUndeliverable) and by letting user handle the case where a queue is missing. By looping for a timeout we no longer raise an exception.\n\nMaybe a compromize could be to leave the flag for awhile but in this case we should reformulating is helping message/doc.\n\nHowever in this case if a customer disable the flag we will loose the possiblity to know if we face an exchange issue or a missing queue.\n\nThoughts?","commit_id":"57e6ba879ec1a19f142c50134367b4d512f223e7"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"51a580f5d5f2f87ddbe0e2a7e598f93cecc5d299","unresolved":true,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Currently, setting the \u0027[oslo_messaging] direct_mandatory_flag\u0027 config"},{"line_number":18,"context_line":"option to \u0027True\u0027 (the default) will result in a \u0027MessageUndeliverable\u0027"},{"line_number":19,"context_line":"exception being raised when sending a reply if a RabbitMQ queue is missing."},{"line_number":20,"context_line":"It was the responsibility of the application to handle this exception,"},{"line_number":21,"context_line":"however, many applications are not doing so. This has resulted in a"},{"line_number":22,"context_line":"number of bug reports."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"8579986b_6a985851","line":19,"range":{"start_line":19,"start_character":67,"end_line":19,"end_character":75},"updated":"2021-02-04 09:40:36.000000000","message":"nit: can you wrap under 72 characters?","commit_id":"d6c1405cab5dc973232cf177b8108543dac62355"}],"oslo_messaging/_drivers/amqpdriver.py":[{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"1ac5f26a3356669364741f22f57f6f8b1e30dfbd","unresolved":true,"context_lines":[{"line_number":249,"context_line":"        self._message_operations_handler.do(_do_requeue)"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"class ObsoleteReplyQueuesCache(object):"},{"line_number":253,"context_line":"    \"\"\"Cache of reply queue id that doesn\u0027t exist anymore."},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"    NOTE(sileht): In case of a broker restart/failover"}],"source_content_type":"text/x-python","patch_set":2,"id":"48d16476_108803bf","line":252,"range":{"start_line":252,"start_character":6,"end_line":252,"end_character":30},"updated":"2021-01-21 13:37:05.000000000","message":"Do we want to store / manage obsolete exchanges and obsolete queues as one and the same or as a different things?\n\nAs the storage is based on the msg_id I think we can continue as one and the same thing. This notion mostly translate a client gone and help us to to manage our connections properly to avoid starvation.\n\nAny opinion?","commit_id":"f3b875c35305dc418e08c3cdabfeae90bfd1b115"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"a79eb1260880a044b0d9a81c8fe150cddf2b9851","unresolved":true,"context_lines":[{"line_number":177,"context_line":"                if timer.check_return() \u003e 0:"},{"line_number":178,"context_line":"                    LOG.debug((\"The reply %(msg_id)s cannot be sent  \""},{"line_number":179,"context_line":"                               f\"{exc}\""},{"line_number":180,"context_line":"                               \"retrying...\"), {\u0027msg_id\u0027: self.msg_id})"},{"line_number":181,"context_line":"                    time.sleep(0.25)"},{"line_number":182,"context_line":"                else:"},{"line_number":183,"context_line":"                    self._obsolete_reply_queues.add(self.reply_q, self.msg_id)"}],"source_content_type":"text/x-python","patch_set":10,"id":"c2315348_d7226905","line":180,"updated":"2021-02-02 12:04:38.000000000","message":"You use the f-strings for exc variable, maybe you can also use it for msg_id for not mix both.","commit_id":"55fc4ec21eb06e82640056fde6640df4281f16bc"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"a79eb1260880a044b0d9a81c8fe150cddf2b9851","unresolved":true,"context_lines":[{"line_number":189,"context_line":"                    LOG.info(\"The reply %(msg_id)s cannot be sent  \""},{"line_number":190,"context_line":"                             f\"{exc} after \""},{"line_number":191,"context_line":"                             \"%(duration)s sec abandoning...\", infos)"},{"line_number":192,"context_line":"                    return"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"    def heartbeat(self):"},{"line_number":195,"context_line":"        # generate a keep alive for RPC call monitoring"}],"source_content_type":"text/x-python","patch_set":10,"id":"8f3534a2_64c0b43f","line":192,"updated":"2021-02-02 12:04:38.000000000","message":"You use the f-strings for exc variable, maybe you can also use it for msg_id and duration for not mix both.","commit_id":"55fc4ec21eb06e82640056fde6640df4281f16bc"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f8dc9c25ae3e35554934c93c4500f4b521c39f9c","unresolved":true,"context_lines":[{"line_number":151,"context_line":"            # NOTE(hberaud) AMQPDestinationNotFound help us to handle"},{"line_number":152,"context_line":"            # missing exchanges."},{"line_number":153,"context_line":"            # MessageUndeliverable help us to handle a missing queue,"},{"line_number":154,"context_line":"            # it\u0027s a bit more fine grained AMQP error handeling."},{"line_number":155,"context_line":"            # Queue not found"},{"line_number":156,"context_line":"            except oslo_messaging.MessageUndeliverable:"},{"line_number":157,"context_line":"                if timer.check_return() \u003e 0:"}],"source_content_type":"text/x-python","patch_set":11,"id":"dd362291_d51157b4","line":154,"range":{"start_line":154,"start_character":54,"end_line":154,"end_character":63},"updated":"2021-02-03 11:44:56.000000000","message":"handling","commit_id":"61470013d64a287d4ba9382786758282195c8f77"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f8dc9c25ae3e35554934c93c4500f4b521c39f9c","unresolved":true,"context_lines":[{"line_number":157,"context_line":"                if timer.check_return() \u003e 0:"},{"line_number":158,"context_line":"                    LOG.debug(f\"The reply {self.msg_id} cannot be sent  \""},{"line_number":159,"context_line":"                              f\"{self.reply_q} reply queue doesn\u0027t exist, \""},{"line_number":160,"context_line":"                              \"retrying...\")"},{"line_number":161,"context_line":"                    time.sleep(0.25)"},{"line_number":162,"context_line":"                else:"},{"line_number":163,"context_line":"                    self._obsolete_reply_queues.add(self.reply_q, self.msg_id)"}],"source_content_type":"text/x-python","patch_set":11,"id":"a2570226_4c8ac641","line":160,"updated":"2021-02-03 11:44:56.000000000","message":"No, you should always use delayed string interpolation for logging. We really need a hacking check for this.\n\nAlso, could we improve the log while we\u0027re here. Something like the below would be much clearer IMO:\n\n  LOG.debug(\n      \u0027The reply %(msg_id)s could not be sent due to a missing queue, \u0027\n      \u0027%(reply_q)s. Retrying...\u0027,\n      {...})","commit_id":"61470013d64a287d4ba9382786758282195c8f77"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f8dc9c25ae3e35554934c93c4500f4b521c39f9c","unresolved":true,"context_lines":[{"line_number":163,"context_line":"                    self._obsolete_reply_queues.add(self.reply_q, self.msg_id)"},{"line_number":164,"context_line":"                    LOG.info(f\"The reply {self.msg_id} cannot be sent  \""},{"line_number":165,"context_line":"                             f\"{self.reply_q} reply queue don\u0027t exist after \""},{"line_number":166,"context_line":"                             f\"{duration} sec abandoning...\")"},{"line_number":167,"context_line":"                    return"},{"line_number":168,"context_line":"            # Exchange not found"},{"line_number":169,"context_line":"            except rpc_amqp.AMQPDestinationNotFound as exc:"}],"source_content_type":"text/x-python","patch_set":11,"id":"d1395b69_418520e4","line":166,"updated":"2021-02-03 11:44:56.000000000","message":"Ditto. Also, can we reword this. Something like:\n\n  LOG.info(\n      \u0027The reply %(msg_id)s failed to send after %(duration)d seconds \u0027\n      \u0027due to a missing queue, %(reply_q)s. Abandoning.\u0027,\n      {...})\n\nFinally, why is this an info log and not a warning or even error? Are replies not important?","commit_id":"61470013d64a287d4ba9382786758282195c8f77"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f8dc9c25ae3e35554934c93c4500f4b521c39f9c","unresolved":true,"context_lines":[{"line_number":164,"context_line":"                    LOG.info(f\"The reply {self.msg_id} cannot be sent  \""},{"line_number":165,"context_line":"                             f\"{self.reply_q} reply queue don\u0027t exist after \""},{"line_number":166,"context_line":"                             f\"{duration} sec abandoning...\")"},{"line_number":167,"context_line":"                    return"},{"line_number":168,"context_line":"            # Exchange not found"},{"line_number":169,"context_line":"            except rpc_amqp.AMQPDestinationNotFound as exc:"},{"line_number":170,"context_line":"                if timer.check_return() \u003e 0:"}],"source_content_type":"text/x-python","patch_set":11,"id":"f0ba7f69_ab5ea3fc","line":167,"updated":"2021-02-03 11:44:56.000000000","message":"nit: You could change the order of these to dedent things a little:\n\n  if timer.check_return() \u003c\u003d 0:\n      LOG.info(...)\n      return\n\n  LOG.debug(...)\n  time.sleep(...)\n\nditto below","commit_id":"61470013d64a287d4ba9382786758282195c8f77"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f8dc9c25ae3e35554934c93c4500f4b521c39f9c","unresolved":true,"context_lines":[{"line_number":169,"context_line":"            except rpc_amqp.AMQPDestinationNotFound as exc:"},{"line_number":170,"context_line":"                if timer.check_return() \u003e 0:"},{"line_number":171,"context_line":"                    LOG.debug(f\"The reply {self.msg_id} cannot be sent  \""},{"line_number":172,"context_line":"                              f\"{exc} retrying...\")"},{"line_number":173,"context_line":"                    time.sleep(0.25)"},{"line_number":174,"context_line":"                else:"},{"line_number":175,"context_line":"                    self._obsolete_reply_queues.add(self.reply_q, self.msg_id)"}],"source_content_type":"text/x-python","patch_set":11,"id":"16dff27f_658953dd","line":172,"updated":"2021-02-03 11:44:56.000000000","message":"How about?\n\n  LOG.debug(\n      \u0027The reply %(msg_id)s could not be sent due to a broker issue \u0027\n      \u0027(%(exc)s). Retrying...\u0027,\n      {...})","commit_id":"61470013d64a287d4ba9382786758282195c8f77"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f8dc9c25ae3e35554934c93c4500f4b521c39f9c","unresolved":true,"context_lines":[{"line_number":174,"context_line":"                else:"},{"line_number":175,"context_line":"                    self._obsolete_reply_queues.add(self.reply_q, self.msg_id)"},{"line_number":176,"context_line":"                    LOG.info(f\"The reply {self.msg_id} cannot be sent {exc} \""},{"line_number":177,"context_line":"                             f\"after {duration} sec abandoning...\")"},{"line_number":178,"context_line":"                    return"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"    def heartbeat(self):"}],"source_content_type":"text/x-python","patch_set":11,"id":"1340a1fb_16134587","line":177,"updated":"2021-02-03 11:44:56.000000000","message":"How about?\n\n  LOG.info(\n      \u0027The reply %(msg_id)s failed to send after %(duration)d seconds \u0027\n      \u0027due to a broker issue \u0027(%(exc)s). Abandoning.\u0027,\n      {...})","commit_id":"61470013d64a287d4ba9382786758282195c8f77"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1b3e22e5fabedd1f975e3e14a2ab462142e142b8","unresolved":true,"context_lines":[{"line_number":156,"context_line":"            except oslo_messaging.MessageUndeliverable:"},{"line_number":157,"context_line":"                if timer.check_return() \u003c\u003d 0:"},{"line_number":158,"context_line":"                    self._obsolete_reply_queues.add(self.reply_q, self.msg_id)"},{"line_number":159,"context_line":"                    LOG.error(\u0027The reply %(msg_id)s failed to send after \u0027"},{"line_number":160,"context_line":"                             \u0027%(duration)d seconds \u0027"},{"line_number":161,"context_line":"                             \u0027due to a missing queue, %(reply_q)s. \u0027"},{"line_number":162,"context_line":"                             \u0027Abandoning.\u0027, {"}],"source_content_type":"text/x-python","patch_set":12,"id":"a68d9f20_89f5c78a","line":159,"updated":"2021-02-03 14:43:06.000000000","message":"style nit: any reason to use the large hanging indent rather than e.g.\n\n  LOG.error(\n      \u0027The reply ...\u0027\n      ..., {\n          ...,\n      })\n\nSame for the below","commit_id":"57e6ba879ec1a19f142c50134367b4d512f223e7"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1b3e22e5fabedd1f975e3e14a2ab462142e142b8","unresolved":true,"context_lines":[{"line_number":163,"context_line":"                                \u0027msg_id\u0027: self.msg_id,"},{"line_number":164,"context_line":"                                \u0027duration\u0027: duration,"},{"line_number":165,"context_line":"                                \u0027reply_q\u0027: self.reply_q})"},{"line_number":166,"context_line":"                    return"},{"line_number":167,"context_line":"                LOG.debug(\u0027The reply %(msg_id)s could not be sent due to \u0027"},{"line_number":168,"context_line":"                          \u0027a missing queue, \u0027"},{"line_number":169,"context_line":"                          \u0027%(reply_q)s. Retrying...\u0027, {"}],"source_content_type":"text/x-python","patch_set":12,"id":"1086789d_fef0b0be","line":166,"updated":"2021-02-03 14:43:06.000000000","message":"stylenit: could we add a newline after this?","commit_id":"57e6ba879ec1a19f142c50134367b4d512f223e7"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"51a580f5d5f2f87ddbe0e2a7e598f93cecc5d299","unresolved":true,"context_lines":[{"line_number":159,"context_line":"                    self._obsolete_reply_queues.add(self.reply_q, self.msg_id)"},{"line_number":160,"context_line":"                    LOG.error("},{"line_number":161,"context_line":"                        \u0027The reply %(msg_id)s failed to send after \u0027"},{"line_number":162,"context_line":"                        \u0027%(duration)d seconds \u0027 \u0027due to a missing queue, \u0027"},{"line_number":163,"context_line":"                        \u0027%(reply_q)s. Abandoning.\u0027, {"},{"line_number":164,"context_line":"                            \u0027msg_id\u0027: self.msg_id,"},{"line_number":165,"context_line":"                            \u0027duration\u0027: duration,"}],"source_content_type":"text/x-python","patch_set":16,"id":"75b1001e_ab885050","line":162,"range":{"start_line":162,"start_character":46,"end_line":162,"end_character":49},"updated":"2021-02-04 09:40:36.000000000","message":"rewrapping mistake?","commit_id":"d6c1405cab5dc973232cf177b8108543dac62355"}],"oslo_messaging/_drivers/impl_rabbit.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f8dc9c25ae3e35554934c93c4500f4b521c39f9c","unresolved":true,"context_lines":[{"line_number":178,"context_line":"                \u0027so the MessageUndeliverable exception is raised \u0027"},{"line_number":179,"context_line":"                \u0027in case the client queue does not exist.\u0027"},{"line_number":180,"context_line":"                \u0027This flag is deprecated and it will not be possible to \u0027"},{"line_number":181,"context_line":"                \u0027deactivate this functionality anymore\u0027),"},{"line_number":182,"context_line":"    cfg.BoolOpt(\u0027enable_cancel_on_failover\u0027,"},{"line_number":183,"context_line":"                default\u003dFalse,"},{"line_number":184,"context_line":"                help\u003d\"Enable x-cancel-on-ha-failover flag so that \""}],"source_content_type":"text/x-python","patch_set":11,"id":"1217fec1_64d2c82d","side":"PARENT","line":181,"updated":"2021-02-03 11:44:56.000000000","message":"We only just deprecated this. Why are we removing it so quickly? What\u0027s the rush?","commit_id":"e18553f5058ef6fd1200ac76e1f8e548afb1c043"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f8dc9c25ae3e35554934c93c4500f4b521c39f9c","unresolved":true,"context_lines":[{"line_number":506,"context_line":"            # if it was already monkey patched by eventlet/greenlet."},{"line_number":507,"context_line":"            global threading"},{"line_number":508,"context_line":"            threading \u003d stdlib_threading"},{"line_number":509,"context_line":"        self.direct_mandatory_flag \u003d True"},{"line_number":510,"context_line":""},{"line_number":511,"context_line":"        if self.ssl:"},{"line_number":512,"context_line":"            self.ssl_version \u003d driver_conf.ssl_version"}],"source_content_type":"text/x-python","patch_set":11,"id":"d13ed439_4c0f4cc5","line":509,"updated":"2021-02-03 11:44:56.000000000","message":"stylenit: could you insert a newline above this?","commit_id":"61470013d64a287d4ba9382786758282195c8f77"}],"releasenotes/notes/handle-missing-queue-553a803f94976be7.yaml":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f8dc9c25ae3e35554934c93c4500f4b521c39f9c","unresolved":true,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Adding retry strategy based on the mandatory flag. Missing exchanges and"},{"line_number":5,"context_line":"    queues arn\u0027t anymore considered as one and the same thing."},{"line_number":6,"context_line":"upgrade:"},{"line_number":7,"context_line":"  - |"},{"line_number":8,"context_line":"    Removing the ``direct_mandatory_flag`` option. It\u0027s not anymore allowed"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"231b4339_3cd636b4","line":5,"range":{"start_line":5,"start_character":11,"end_line":5,"end_character":62},"updated":"2021-02-03 11:44:56.000000000","message":"Or:\n\n  ...are now identified separately for logging purposes.\n\nSince that\u0027s the only impact for end-users, right?","commit_id":"61470013d64a287d4ba9382786758282195c8f77"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f8dc9c25ae3e35554934c93c4500f4b521c39f9c","unresolved":true,"context_lines":[{"line_number":6,"context_line":"upgrade:"},{"line_number":7,"context_line":"  - |"},{"line_number":8,"context_line":"    Removing the ``direct_mandatory_flag`` option. It\u0027s not anymore allowed"},{"line_number":9,"context_line":"    to disable the mandatory flag."}],"source_content_type":"text/x-yaml","patch_set":11,"id":"2033671c_09ae6fe4","line":9,"updated":"2021-02-03 11:44:56.000000000","message":"Or:\n\n  The ``[oslo_messaging_rabbit] direct_mandatory_flag`` flag has been removed.\n  It was deprecated in 12.6.1 release.\n\nAlso, when/if we removed this, there are references to the mandatory flag in \u0027doc/source/admin/rabbit.rst\u0027 that should be removed.","commit_id":"61470013d64a287d4ba9382786758282195c8f77"}]}
