Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-oslo.messaging for openSUSE:Factory checked in at 2022-10-03 13:46:33 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-oslo.messaging (Old) and /work/SRC/openSUSE:Factory/.python-oslo.messaging.new.2275 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-oslo.messaging" Mon Oct 3 13:46:33 2022 rev:27 rq:1007583 version:14.0.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-oslo.messaging/python-oslo.messaging.changes 2022-05-25 20:35:12.572281839 +0200 +++ /work/SRC/openSUSE:Factory/.python-oslo.messaging.new.2275/python-oslo.messaging.changes 2022-10-03 13:47:21.445692000 +0200 @@ -1,0 +2,8 @@ +Sun Oct 2 14:48:00 UTC 2022 - cloud-de...@suse.de + +- update to version 14.0.0 + - Change default value of "heartbeat_in_pthread" to False + - Drop python3.6/3.7 support in testing runtime + - Add quorum queue control configurations + +------------------------------------------------------------------- Old: ---- oslo.messaging-12.14.0.tar.gz New: ---- oslo.messaging-14.0.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-oslo.messaging.spec ++++++ --- /var/tmp/diff_new_pack.TmB7NW/_old 2022-10-03 13:47:21.913693029 +0200 +++ /var/tmp/diff_new_pack.TmB7NW/_new 2022-10-03 13:47:21.921693047 +0200 @@ -17,13 +17,13 @@ Name: python-oslo.messaging -Version: 12.14.0 +Version: 14.0.0 Release: 0 Summary: OpenStack oslo.messaging library License: Apache-2.0 Group: Development/Languages/Python URL: https://docs.openstack.org/oslo.messaging -Source0: https://files.pythonhosted.org/packages/source/o/oslo.messaging/oslo.messaging-12.14.0.tar.gz +Source0: https://files.pythonhosted.org/packages/source/o/oslo.messaging/oslo.messaging-14.0.0.tar.gz BuildRequires: openstack-macros BuildRequires: python3-PyYAML >= 3.13 BuildRequires: python3-WebOb >= 1.7.1 @@ -98,7 +98,7 @@ This package contains the documentation. %prep -%autosetup -p1 -n oslo.messaging-12.14.0 +%autosetup -p1 -n oslo.messaging-14.0.0 %py_req_cleanup %build ++++++ oslo.messaging-12.14.0.tar.gz -> oslo.messaging-14.0.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.messaging-12.14.0/AUTHORS new/oslo.messaging-14.0.0/AUTHORS --- old/oslo.messaging-12.14.0/AUTHORS 2022-05-12 12:26:02.000000000 +0200 +++ new/oslo.messaging-14.0.0/AUTHORS 2022-08-24 15:27:23.000000000 +0200 @@ -164,6 +164,7 @@ Sergey Lukjanov <slukja...@mirantis.com> Sergey Vilgelm <ser...@vilgelm.info> Shahar Lev <sha...@stratoscale.com> +Slawek Kaplonski <skapl...@redhat.com> Stanislav Kudriashev <skudrias...@griddynamics.com> Stanis??aw Pitucha <stanislaw.pitu...@hp.com> Stephen Finucane <sfinu...@redhat.com> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.messaging-12.14.0/ChangeLog new/oslo.messaging-14.0.0/ChangeLog --- old/oslo.messaging-12.14.0/ChangeLog 2022-05-12 12:26:02.000000000 +0200 +++ new/oslo.messaging-14.0.0/ChangeLog 2022-08-24 15:27:22.000000000 +0200 @@ -1,10 +1,21 @@ CHANGES ======= +14.0.0 +------ + +* Change default value of "heartbeat\_in\_pthread" to False + +13.0.0 +------ + +* Drop python3.6/3.7 support in testing runtime + 12.14.0 ------- * Add EXTERNAL as rabbit login method +* Add quorum queue control configurations * tests: Fix test failures with kombu >= 5.2.4 * Add Python3 zed unit tests * Update master for stable/yoga diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.messaging-12.14.0/PKG-INFO new/oslo.messaging-14.0.0/PKG-INFO --- old/oslo.messaging-12.14.0/PKG-INFO 2022-05-12 12:26:02.899510000 +0200 +++ new/oslo.messaging-14.0.0/PKG-INFO 2022-08-24 15:27:23.258357500 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: oslo.messaging -Version: 12.14.0 +Version: 14.0.0 Summary: Oslo Messaging API Home-page: https://docs.openstack.org/oslo.messaging/latest/ Author: OpenStack @@ -44,13 +44,11 @@ Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.6 -Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3 :: Only Classifier: Programming Language :: Python :: Implementation :: CPython -Requires-Python: >=3.6 +Requires-Python: >=3.8 Provides-Extra: amqp1 Provides-Extra: kafka Provides-Extra: test diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.messaging-12.14.0/doc/source/admin/rabbit.rst new/oslo.messaging-14.0.0/doc/source/admin/rabbit.rst --- old/oslo.messaging-12.14.0/doc/source/admin/rabbit.rst 2022-05-12 12:25:30.000000000 +0200 +++ new/oslo.messaging-14.0.0/doc/source/admin/rabbit.rst 2022-08-24 15:26:44.000000000 +0200 @@ -241,6 +241,9 @@ - :oslo.config:option:`oslo_messaging_rabbit.rabbit_ha_queues` - :oslo.config:option:`oslo_messaging_rabbit.rabbit_quorum_queue` +- :oslo.config:option:`oslo_messaging_rabbit.rabbit_quorum_delivery_limit` +- :oslo.config:option:`oslo_messaging_rabbit.rabbit_quroum_max_memory_length` +- :oslo.config:option:`oslo_messaging_rabbit.rabbit_quroum_max_memory_bytes` - :oslo.config:option:`oslo_messaging_rabbit.rabbit_transient_queues_ttl` Connection Options diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.messaging-12.14.0/oslo.messaging.egg-info/PKG-INFO new/oslo.messaging-14.0.0/oslo.messaging.egg-info/PKG-INFO --- old/oslo.messaging-12.14.0/oslo.messaging.egg-info/PKG-INFO 2022-05-12 12:26:02.000000000 +0200 +++ new/oslo.messaging-14.0.0/oslo.messaging.egg-info/PKG-INFO 2022-08-24 15:27:23.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: oslo.messaging -Version: 12.14.0 +Version: 14.0.0 Summary: Oslo Messaging API Home-page: https://docs.openstack.org/oslo.messaging/latest/ Author: OpenStack @@ -44,13 +44,11 @@ Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.6 -Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3 :: Only Classifier: Programming Language :: Python :: Implementation :: CPython -Requires-Python: >=3.6 +Requires-Python: >=3.8 Provides-Extra: amqp1 Provides-Extra: kafka Provides-Extra: test diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.messaging-12.14.0/oslo.messaging.egg-info/SOURCES.txt new/oslo.messaging-14.0.0/oslo.messaging.egg-info/SOURCES.txt --- old/oslo.messaging-12.14.0/oslo.messaging.egg-info/SOURCES.txt 2022-05-12 12:26:02.000000000 +0200 +++ new/oslo.messaging-14.0.0/oslo.messaging.egg-info/SOURCES.txt 2022-08-24 15:27:23.000000000 +0200 @@ -140,6 +140,7 @@ releasenotes/notes/RPC-call-monitoring-7977f047d069769a.yaml releasenotes/notes/add-enable_cancel_on_failover-22ac472b93dd3a23.yaml releasenotes/notes/add-ping-endpoint.yaml +releasenotes/notes/add-quorum-control-configurations-beed79811ff97ba2.yaml releasenotes/notes/add-ssl-support-for-kafka.yaml releasenotes/notes/add_reno-3b4ae0789e9c45b4.yaml releasenotes/notes/adding_support_for_quorum_queues-3101d055b492289e.yaml @@ -150,6 +151,7 @@ releasenotes/notes/connection_ttl-2cf0fe6e1ab8c73c.yaml releasenotes/notes/deprecate-ZeroMQ-driver-a8af25aaba867c5b.yaml releasenotes/notes/disable-mandatory-flag-a6210a534f3853f0.yaml +releasenotes/notes/do-not-run-heartbeat-in-pthread-by-default-42e1299f59b841f8.yaml releasenotes/notes/drop-python27-support-5ef2f365d8930483.yaml releasenotes/notes/enforce_fips_mode-07dd259eb8a73c2b.yaml releasenotes/notes/fix-access_policy-deafult-a6954a147cb002b0.yaml diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.messaging-12.14.0/oslo.messaging.egg-info/pbr.json new/oslo.messaging-14.0.0/oslo.messaging.egg-info/pbr.json --- old/oslo.messaging-12.14.0/oslo.messaging.egg-info/pbr.json 2022-05-12 12:26:02.000000000 +0200 +++ new/oslo.messaging-14.0.0/oslo.messaging.egg-info/pbr.json 2022-08-24 15:27:23.000000000 +0200 @@ -1 +1 @@ -{"git_version": "ca498b61", "is_release": true} \ No newline at end of file +{"git_version": "e44f286e", "is_release": true} \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.messaging-12.14.0/oslo_messaging/_drivers/impl_rabbit.py new/oslo.messaging-14.0.0/oslo_messaging/_drivers/impl_rabbit.py --- old/oslo.messaging-12.14.0/oslo_messaging/_drivers/impl_rabbit.py 2022-05-12 12:25:30.000000000 +0200 +++ new/oslo.messaging-14.0.0/oslo_messaging/_drivers/impl_rabbit.py 2022-08-24 15:26:44.000000000 +0200 @@ -12,6 +12,7 @@ # License for the specific language governing permissions and limitations # under the License. +import collections import contextlib import errno import functools @@ -45,6 +46,13 @@ from oslo_messaging import _utils from oslo_messaging import exceptions + +# The QuorumMemConfig will hold the quorum queue memory configurations +QuorumMemConfig = collections.namedtuple('QuorumMemConfig', + 'delivery_limit' + ' max_memory_length' + ' max_memory_bytes') + # NOTE(sileht): don't exist in py2 socket module TCP_USER_TIMEOUT = 18 @@ -84,7 +92,7 @@ 'executable used does not support OpenSSL FIPS mode, ' 'an exception will be raised.'), cfg.BoolOpt('heartbeat_in_pthread', - default=True, + default=False, help="Run the health check heartbeat thread " "through a native python thread by default. If this " "option is equal to False then the health check " @@ -92,7 +100,9 @@ "from the parent process. For " "example if the parent process has monkey patched the " "stdlib by using eventlet/greenlet then the heartbeat " - "will be run through a green thread.", + "will be run through a green thread. " + "This option should be set to True only for the " + "wsgi services.", ), cfg.FloatOpt('kombu_reconnect_delay', default=1.0, @@ -156,6 +166,30 @@ 'in other words the HA queues should be disabled, quorum ' 'queues durable by default so the amqp_durable_queues ' 'opion is ignored when this option enabled.'), + cfg.IntOpt('rabbit_quorum_delivery_limit', + default=0, + help='Each time a message is redelivered to a consumer, ' + 'a counter is incremented. Once the redelivery count ' + 'exceeds the delivery limit the message gets dropped ' + 'or dead-lettered (if a DLX exchange has been configured) ' + 'Used only when rabbit_quorum_queue is enabled, ' + 'Default 0 which means dont set a limit.'), + cfg.IntOpt('rabbit_quroum_max_memory_length', + default=0, + help='By default all messages are maintained in memory ' + 'if a quorum queue grows in length it can put memory ' + 'pressure on a cluster. This option can limit the number ' + 'of messages in the quorum queue. ' + 'Used only when rabbit_quorum_queue is enabled, ' + 'Default 0 which means dont set a limit.'), + cfg.IntOpt('rabbit_quroum_max_memory_bytes', + default=0, + help='By default all messages are maintained in memory ' + 'if a quorum queue grows in length it can put memory ' + 'pressure on a cluster. This option can limit the number ' + 'of memory bytes used by the quorum queue. ' + 'Used only when rabbit_quorum_queue is enabled, ' + 'Default 0 which means dont set a limit.'), cfg.IntOpt('rabbit_transient_queues_ttl', min=1, default=1800, @@ -199,7 +233,8 @@ def _get_queue_arguments(rabbit_ha_queues, rabbit_queue_ttl, - rabbit_quorum_queue): + rabbit_quorum_queue, + rabbit_quorum_queue_config): """Construct the arguments for declaring a queue. If the rabbit_ha_queues option is set, we try to declare a mirrored queue @@ -233,6 +268,14 @@ RabbitMQ 3.8.0. If set this option will conflict with the HA queues (``rabbit_ha_queues``) aka mirrored queues, in other words HA queues should be disabled. + + rabbit_quorum_queue_config: + Quorum queues provides three options to handle message poisoning + and limit the resources the qourum queue can use + x-delivery-limit number of times the queue will try to deliver + a message before it decide to discard it + x-max-in-memory-length, x-max-in-memory-bytes control the size + of memory used by quorum queue """ args = {} @@ -246,6 +289,15 @@ if rabbit_quorum_queue: args['x-queue-type'] = 'quorum' + if rabbit_quorum_queue_config.delivery_limit: + args['x-delivery-limit'] = \ + rabbit_quorum_queue_config.delivery_limit + if rabbit_quorum_queue_config.max_memory_length: + args['x-max-in-memory-length'] = \ + rabbit_quorum_queue_config.max_memory_length + if rabbit_quorum_queue_config.max_memory_bytes: + args['x-max-in-memory-bytes'] = \ + rabbit_quorum_queue_config.max_memory_bytes if rabbit_queue_ttl > 0: args['x-expires'] = rabbit_queue_ttl * 1000 @@ -275,7 +327,8 @@ def __init__(self, exchange_name, queue_name, routing_key, type, durable, exchange_auto_delete, queue_auto_delete, callback, nowait=False, rabbit_ha_queues=None, rabbit_queue_ttl=0, - enable_cancel_on_failover=False, rabbit_quorum_queue=False): + enable_cancel_on_failover=False, rabbit_quorum_queue=False, + rabbit_quorum_queue_config=QuorumMemConfig(0, 0, 0)): """Init the Consumer class with the exchange_name, routing_key, type, durable auto_delete """ @@ -288,9 +341,10 @@ self.callback = callback self.type = type self.nowait = nowait - self.queue_arguments = _get_queue_arguments(rabbit_ha_queues, - rabbit_queue_ttl, - rabbit_quorum_queue) + rabbit_quorum_queue_config = rabbit_quorum_queue_config or {} + self.queue_arguments = _get_queue_arguments( + rabbit_ha_queues, rabbit_queue_ttl, rabbit_quorum_queue, + rabbit_quorum_queue_config) self.queue = None self._declared_on = None self.exchange = kombu.entity.Exchange( @@ -505,6 +559,8 @@ self.login_method = driver_conf.rabbit_login_method self.rabbit_ha_queues = driver_conf.rabbit_ha_queues self.rabbit_quorum_queue = driver_conf.rabbit_quorum_queue + self.rabbit_quorum_queue_config = self._get_quorum_configurations( + driver_conf) self.rabbit_transient_queues_ttl = \ driver_conf.rabbit_transient_queues_ttl self.rabbit_qos_prefetch_count = driver_conf.rabbit_qos_prefetch_count @@ -732,6 +788,14 @@ except KeyError: raise RuntimeError("Invalid SSL version : %s" % version) + def _get_quorum_configurations(self, driver_conf): + """Get the quorum queue configurations""" + delivery_limit = driver_conf.rabbit_quorum_delivery_limit + max_memory_length = driver_conf.rabbit_quroum_max_memory_length + max_memory_bytes = driver_conf.rabbit_quroum_max_memory_bytes + return QuorumMemConfig(delivery_limit, max_memory_length, + max_memory_bytes) + # NOTE(moguimar): default_password in this function's context is just # a fallback option, not a hardcoded password. def _transform_transport_url(self, url, host, default_username='', # nosec @@ -1225,7 +1289,8 @@ callback=callback, rabbit_ha_queues=self.rabbit_ha_queues, enable_cancel_on_failover=self.enable_cancel_on_failover, - rabbit_quorum_queue=self.rabbit_quorum_queue) + rabbit_quorum_queue=self.rabbit_quorum_queue, + rabbit_quorum_queue_config=self.rabbit_quorum_queue_config) self.declare_consumer(consumer) @@ -1340,7 +1405,8 @@ queue_arguments=_get_queue_arguments( self.rabbit_ha_queues, 0, - self.rabbit_quorum_queue)) + self.rabbit_quorum_queue, + self.rabbit_quorum_queue_config)) log_info = {'key': routing_key, 'exchange': exchange} LOG.trace( 'Connection._publish_and_creates_default_queue: ' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.messaging-12.14.0/releasenotes/notes/add-quorum-control-configurations-beed79811ff97ba2.yaml new/oslo.messaging-14.0.0/releasenotes/notes/add-quorum-control-configurations-beed79811ff97ba2.yaml --- old/oslo.messaging-12.14.0/releasenotes/notes/add-quorum-control-configurations-beed79811ff97ba2.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/oslo.messaging-14.0.0/releasenotes/notes/add-quorum-control-configurations-beed79811ff97ba2.yaml 2022-08-24 15:26:44.000000000 +0200 @@ -0,0 +1,6 @@ +--- +features: + - | + Add quorum configuration x-max-in-memory-length, + x-max-in-memory-bytes, x-delivery-limit which control the quorum + queue memory usage and handle the message poisoning problem diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.messaging-12.14.0/releasenotes/notes/do-not-run-heartbeat-in-pthread-by-default-42e1299f59b841f8.yaml new/oslo.messaging-14.0.0/releasenotes/notes/do-not-run-heartbeat-in-pthread-by-default-42e1299f59b841f8.yaml --- old/oslo.messaging-12.14.0/releasenotes/notes/do-not-run-heartbeat-in-pthread-by-default-42e1299f59b841f8.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/oslo.messaging-14.0.0/releasenotes/notes/do-not-run-heartbeat-in-pthread-by-default-42e1299f59b841f8.yaml 2022-08-24 15:26:44.000000000 +0200 @@ -0,0 +1,9 @@ +--- +upgrade: + - | + The ``[oslo_messaging_rabbit] heartbeat_in_pthread`` config option + defaults to ``False`` again. + For wsgi applications it is recommended to set this value to ``True`` + but enabling it for non-wsgi services may break such service. + Please check https://bugs.launchpad.net/oslo.messaging/+bug/1934937 + for more details. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.messaging-12.14.0/setup.cfg new/oslo.messaging-14.0.0/setup.cfg --- old/oslo.messaging-12.14.0/setup.cfg 2022-05-12 12:26:02.903510000 +0200 +++ new/oslo.messaging-14.0.0/setup.cfg 2022-08-24 15:27:23.258357500 +0200 @@ -6,7 +6,7 @@ description_file = README.rst home_page = https://docs.openstack.org/oslo.messaging/latest/ -python_requires = >=3.6 +python_requires = >=3.8 classifier = Environment :: OpenStack Intended Audience :: Developers @@ -15,8 +15,6 @@ Operating System :: OS Independent Programming Language :: Python Programming Language :: Python :: 3 - Programming Language :: Python :: 3.6 - Programming Language :: Python :: 3.7 Programming Language :: Python :: 3.8 Programming Language :: Python :: 3.9 Programming Language :: Python :: 3 :: Only