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

Reply via email to