<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/python-packages/tooz.git, branch stable/train</title>
<subtitle>opendev.org: openstack/tooz.git
</subtitle>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/tooz.git/'/>
<entry>
<title>ignore reno generated artifacts</title>
<updated>2022-07-05T12:05:43+00:00</updated>
<author>
<name>Hervé Beraud</name>
<email>hberaud@redhat.com</email>
</author>
<published>2020-03-25T12:17:59+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/tooz.git/commit/?id=dc572af710f97bd47ade7e3262f9653a0fe52f23'/>
<id>dc572af710f97bd47ade7e3262f9653a0fe52f23</id>
<content type='text'>
Change-Id: I4593085e60930f039d13db2a4c7799b16a1f055a
(cherry picked from commit 4be7780adbd9235233143880044a56e8586b5f68)
(cherry picked from commit 44f05cddc5ca11d69c87c375d8242deb8bace92f)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: I4593085e60930f039d13db2a4c7799b16a1f055a
(cherry picked from commit 4be7780adbd9235233143880044a56e8586b5f68)
(cherry picked from commit 44f05cddc5ca11d69c87c375d8242deb8bace92f)
</pre>
</div>
</content>
</entry>
<entry>
<title>Enable retries in redis driver</title>
<updated>2022-07-05T12:04:40+00:00</updated>
<author>
<name>Pavlo Shchelokovskyy</name>
<email>shchelokovskyy@gmail.com</email>
</author>
<published>2021-06-10T13:32:32+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/tooz.git/commit/?id=883bfb68381623c06c21b493171c319c820e718a'/>
<id>883bfb68381623c06c21b493171c319c820e718a</id>
<content type='text'>
this is followup to Iaab5ce609c0dcf7085f5dd43efbd37eb4b88f17b

actually retry for specified number of retries instead of raising
error on first ConnectionError

Conflicts:
  tooz/drivers/redis.py

NOTE(stephenfin): Conflicts are due to the changes we had to make in
another backport, change Iaab5ce609c0dcf7085f5dd43efbd37eb4b88f17b, to
keep the pep8 job happy. Those changed lines are replaced here.

Change-Id: Ibca3f568b65dfea252da4b67f6d5105ba7f1ecb1
(cherry picked from commit 47c4d56e446a49726e7145c6cbc3bb7620a431f7)
(cherry picked from commit 11526e594c7e7cef8b5a4a4220f100d76a418036)
(cherry picked from commit c1ae1649d22b356f2bbb2293cb421eb155fdee14)
(cherry picked from commit 816ea504c92b141b34759faaf814698499fa0c75)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
this is followup to Iaab5ce609c0dcf7085f5dd43efbd37eb4b88f17b

actually retry for specified number of retries instead of raising
error on first ConnectionError

Conflicts:
  tooz/drivers/redis.py

NOTE(stephenfin): Conflicts are due to the changes we had to make in
another backport, change Iaab5ce609c0dcf7085f5dd43efbd37eb4b88f17b, to
keep the pep8 job happy. Those changed lines are replaced here.

Change-Id: Ibca3f568b65dfea252da4b67f6d5105ba7f1ecb1
(cherry picked from commit 47c4d56e446a49726e7145c6cbc3bb7620a431f7)
(cherry picked from commit 11526e594c7e7cef8b5a4a4220f100d76a418036)
(cherry picked from commit c1ae1649d22b356f2bbb2293cb421eb155fdee14)
(cherry picked from commit 816ea504c92b141b34759faaf814698499fa0c75)
</pre>
</div>
</content>
</entry>
<entry>
<title>Retry on redis connection errors</title>
<updated>2022-07-05T12:03:42+00:00</updated>
<author>
<name>Stephen Finucane</name>
<email>stephenfin@redhat.com</email>
</author>
<published>2022-07-04T16:43:14+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/tooz.git/commit/?id=b8e1cc5ff89dd4b888e6fa8e84f6ce2c6594b1f3'/>
<id>b8e1cc5ff89dd4b888e6fa8e84f6ce2c6594b1f3</id>
<content type='text'>
Sometimes, connections get closed by the server. This change
adds retrying to the code.

Conflicts:
  tooz/drivers/redis.py

NOTE(stephenfin): Conflicts are due to the modifications we had to make
when backporting change I2437071bb575e95083b0d57a6a0a33aaf8356113 in
order to comply with stable policy.

Changes:
  tooz/drivers/redis.py

NOTE(stephenfin): We need to fix a style issue that occurs because the
version of hacking in use here didn't cap flake8, which means we're
pulling in a new version.

Change-Id: Iaab5ce609c0dcf7085f5dd43efbd37eb4b88f17b
(cherry picked from commit a025b4d4ee9fe1bd722960ea03445034580bec6f)
(cherry picked from commit 62d5d17a5d2495f1f898163bbd83acbbc9873620)
(cherry picked from commit 1ddddbba734e5eb4cbba82ae9951a8eb09f94bb9)
(cherry picked from commit 0734d86ae2322aeff92a2d44aa9b796bb7a14c26)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Sometimes, connections get closed by the server. This change
adds retrying to the code.

Conflicts:
  tooz/drivers/redis.py

NOTE(stephenfin): Conflicts are due to the modifications we had to make
when backporting change I2437071bb575e95083b0d57a6a0a33aaf8356113 in
order to comply with stable policy.

Changes:
  tooz/drivers/redis.py

NOTE(stephenfin): We need to fix a style issue that occurs because the
version of hacking in use here didn't cap flake8, which means we're
pulling in a new version.

Change-Id: Iaab5ce609c0dcf7085f5dd43efbd37eb4b88f17b
(cherry picked from commit a025b4d4ee9fe1bd722960ea03445034580bec6f)
(cherry picked from commit 62d5d17a5d2495f1f898163bbd83acbbc9873620)
(cherry picked from commit 1ddddbba734e5eb4cbba82ae9951a8eb09f94bb9)
(cherry picked from commit 0734d86ae2322aeff92a2d44aa9b796bb7a14c26)
</pre>
</div>
</content>
</entry>
<entry>
<title>RedisLock release() should not check if the lock has been acquired</title>
<updated>2022-07-05T10:01:06+00:00</updated>
<author>
<name>Bob.Haddleton</name>
<email>bob.haddleton@nokia.com</email>
</author>
<published>2019-02-10T03:24:54+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/tooz.git/commit/?id=85d0a8b2e09e37639ad29bb3bbcbbad55719dd8e'/>
<id>85d0a8b2e09e37639ad29bb3bbcbbad55719dd8e</id>
<content type='text'>
The RedisDriver coordinator _stop() method removes the lock from the
_acquired_locks set before calling the release() method on the lock,
so the release() method should not check to see if the lock is in the
set, since it never will be.

This was preventing the coordinator's _stop() method from releasing
the locks, so they had to timeout before another group member could
take over as leader.

Change-Id: Ie23d88f1a05983d7465f18a329cabc23d789a628
Closes-Bug: 1815330
(cherry picked from commit 842c7404b2d01c5dd718c14bb55f0cd47471f0e1)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The RedisDriver coordinator _stop() method removes the lock from the
_acquired_locks set before calling the release() method on the lock,
so the release() method should not check to see if the lock is in the
set, since it never will be.

This was preventing the coordinator's _stop() method from releasing
the locks, so they had to timeout before another group member could
take over as leader.

Change-Id: Ie23d88f1a05983d7465f18a329cabc23d789a628
Closes-Bug: 1815330
(cherry picked from commit 842c7404b2d01c5dd718c14bb55f0cd47471f0e1)
</pre>
</div>
</content>
</entry>
<entry>
<title>Avoid redis lock's expire_time exceeding timeout.</title>
<updated>2022-07-05T10:01:06+00:00</updated>
<author>
<name>garenchan</name>
<email>garenchan23@gmail.com</email>
</author>
<published>2019-04-03T13:58:56+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/tooz.git/commit/?id=462c30cc07e3ac04b84b153162334a2802f59efe'/>
<id>462c30cc07e3ac04b84b153162334a2802f59efe</id>
<content type='text'>
After n heartbeats, the expireation time of the lock key becomes
(1 + 0.5n) * timeout! Therefore, when the lock holder performs a
long task and exits abnormally, the lock will not be automatically
released in time.

Changes:
  setup.cfg
  tooz/drivers/redis.py

NOTE(stephenfin): We have to remove the changes to requirements in
setup.cfg since it's not possible to raise the minimum version of a
requirement on a stable branch. Instead we check to see if the attribute
added in the new version is present and use it only if so.

Change-Id: I2437071bb575e95083b0d57a6a0a33aaf8356113
(cherry picked from commit 20bda6ed999e71823b6eac90f01d1a29898b63b2)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
After n heartbeats, the expireation time of the lock key becomes
(1 + 0.5n) * timeout! Therefore, when the lock holder performs a
long task and exits abnormally, the lock will not be automatically
released in time.

Changes:
  setup.cfg
  tooz/drivers/redis.py

NOTE(stephenfin): We have to remove the changes to requirements in
setup.cfg since it's not possible to raise the minimum version of a
requirement on a stable branch. Instead we check to see if the attribute
added in the new version is present and use it only if so.

Change-Id: I2437071bb575e95083b0d57a6a0a33aaf8356113
(cherry picked from commit 20bda6ed999e71823b6eac90f01d1a29898b63b2)
</pre>
</div>
</content>
</entry>
<entry>
<title>Cap protobuf &lt; 4.x</title>
<updated>2022-07-05T10:00:46+00:00</updated>
<author>
<name>Stephen Finucane</name>
<email>stephenfin@redhat.com</email>
</author>
<published>2022-06-28T10:53:19+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/tooz.git/commit/?id=ad58cba1798397fca1e7e698f07fad585d50d35d'/>
<id>ad58cba1798397fca1e7e698f07fad585d50d35d</id>
<content type='text'>
tooz doesn't use upper-constraints so we get the newest version of all
dependencies. It seems one of these, etcd3, is incompatible with recent
versions of protobuf.

  Failed to import test module: tooz.tests.drivers.test_etcd3
  Traceback (most recent call last):
    File "/usr/lib/python3.7/unittest/loader.py", line 436, in _find_test_path
      module = self._get_module_from_name(name)
    File "/usr/lib/python3.7/unittest/loader.py", line 377, in _get_module_from_name
      __import__(name)
    File "/home/zuul/src/opendev.org/openstack/tooz/tooz/tests/drivers/test_etcd3.py", line 22, in &lt;module&gt;
      import tooz.drivers.etcd3 as etcd3_driver
    File "/home/zuul/src/opendev.org/openstack/tooz/tooz/drivers/etcd3.py", line 18, in &lt;module&gt;
      import etcd3
    File "/home/zuul/src/opendev.org/openstack/tooz/.tox/py37/lib/python3.7/site-packages/etcd3/__init__.py", line 3, in &lt;module&gt;
      import etcd3.etcdrpc as etcdrpc
    File "/home/zuul/src/opendev.org/openstack/tooz/.tox/py37/lib/python3.7/site-packages/etcd3/etcdrpc/__init__.py", line 1, in &lt;module&gt;
      from .rpc_pb2 import *
    File "/home/zuul/src/opendev.org/openstack/tooz/.tox/py37/lib/python3.7/site-packages/etcd3/etcdrpc/rpc_pb2.py", line 16, in &lt;module&gt;
      from etcd3.etcdrpc import kv_pb2 as kv__pb2
    File "/home/zuul/src/opendev.org/openstack/tooz/.tox/py37/lib/python3.7/site-packages/etcd3/etcdrpc/kv_pb2.py", line 36, in &lt;module&gt;
      type=None),
    File "/home/zuul/src/opendev.org/openstack/tooz/.tox/py37/lib/python3.7/site-packages/google/protobuf/descriptor.py", line 755, in __new__
      _message.Message._CheckCalledFromGeneratedFile()
  TypeError: Descriptors cannot not be created directly.
  If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc &gt;= 3.19.0.
  If you cannot immediately regenerate your protos, some other possible workarounds are:
   1. Downgrade the protobuf package to 3.20.x or lower.
   2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).

The etcd3 dependency is only used for the etcd3 driver which was
deprecated in change Iff0cd3b51cfc45ecbddc831c55267e80e9c79cac. The
protobuf dependency is only used for etcd3. We can't outright remove the
etcd3 driver yet as it hasn't been long enough since we deprecated it.
That will happen soon enough though and until then we can simply cap
protobuf to an older version that is compatible with the most recent
etcd3 release.

While we're here, we also sync the lower boundaries in the docs
requirements and add some comments indicating where they come from/what
they're for.

Conflicts:
  requirements.txt

NOTE(stephenfin): Conflicts are due to the absence of change
I14a01f0a9989195e30c3ed0dadec35490f41bd48 ("[ussuri][goal] Drop python
2.7 support and testing"). As the name would suggest, this is an
Ussuri-only thing that we can't backport.

Changes:
  setup.cfg
  test-requirements.txt
  tooz/drivers/mysql.py

NOTE(stephenfin): We also need to set some caps for libraries that
failed to indicate that they had dropped Python 2.7 support using the
proper 'python_requires' setuptools keyword (or equivalent). This
includes 'grpcio' and 'sysv-ipc' (dependencies on the 'etcd3' and 'ipc'
extras in 'setup.cfg', respectively) and 'pifpaf' in
'test-requirements.txt'. We also need to blacklist etcd3gw 0.2.6 to keep
the requirements job happy. This was done elsewhere via change
I22b955419014dd34c63e406c488e0636ffe9013b. Finally, we need to fix a
breakage with PyMySQL 0.10.0. In that version a Connection is no longer
a context manager. We fix this by simply getting a Cursor out of it
(locks don't seem to interact with transactions, at least according to
MariaDB docs). This was done elsewhere via change
I5ea06ebd2b976465ff82f10a74e140f30e9e803f.

Change-Id: I8d6647118be22b0ce55e01b7e5451612ebe30e73
Signed-off-by: Stephen Finucane &lt;stephenfin@redhat.com&gt;
(cherry picked from commit e3de0e634af62e46162eb8d2354416ce4f2ba77c)
(cherry picked from commit 73dbe0e6fc1403cbb121985781d7b6ec996b099a)
(cherry picked from commit 8ca40da4bbe813a76cd48d3e8e54b78d10f25765)
(cherry picked from commit 59da4d8d6aae828c2fd36d1ddf12652c3cee7f7a)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
tooz doesn't use upper-constraints so we get the newest version of all
dependencies. It seems one of these, etcd3, is incompatible with recent
versions of protobuf.

  Failed to import test module: tooz.tests.drivers.test_etcd3
  Traceback (most recent call last):
    File "/usr/lib/python3.7/unittest/loader.py", line 436, in _find_test_path
      module = self._get_module_from_name(name)
    File "/usr/lib/python3.7/unittest/loader.py", line 377, in _get_module_from_name
      __import__(name)
    File "/home/zuul/src/opendev.org/openstack/tooz/tooz/tests/drivers/test_etcd3.py", line 22, in &lt;module&gt;
      import tooz.drivers.etcd3 as etcd3_driver
    File "/home/zuul/src/opendev.org/openstack/tooz/tooz/drivers/etcd3.py", line 18, in &lt;module&gt;
      import etcd3
    File "/home/zuul/src/opendev.org/openstack/tooz/.tox/py37/lib/python3.7/site-packages/etcd3/__init__.py", line 3, in &lt;module&gt;
      import etcd3.etcdrpc as etcdrpc
    File "/home/zuul/src/opendev.org/openstack/tooz/.tox/py37/lib/python3.7/site-packages/etcd3/etcdrpc/__init__.py", line 1, in &lt;module&gt;
      from .rpc_pb2 import *
    File "/home/zuul/src/opendev.org/openstack/tooz/.tox/py37/lib/python3.7/site-packages/etcd3/etcdrpc/rpc_pb2.py", line 16, in &lt;module&gt;
      from etcd3.etcdrpc import kv_pb2 as kv__pb2
    File "/home/zuul/src/opendev.org/openstack/tooz/.tox/py37/lib/python3.7/site-packages/etcd3/etcdrpc/kv_pb2.py", line 36, in &lt;module&gt;
      type=None),
    File "/home/zuul/src/opendev.org/openstack/tooz/.tox/py37/lib/python3.7/site-packages/google/protobuf/descriptor.py", line 755, in __new__
      _message.Message._CheckCalledFromGeneratedFile()
  TypeError: Descriptors cannot not be created directly.
  If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc &gt;= 3.19.0.
  If you cannot immediately regenerate your protos, some other possible workarounds are:
   1. Downgrade the protobuf package to 3.20.x or lower.
   2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).

The etcd3 dependency is only used for the etcd3 driver which was
deprecated in change Iff0cd3b51cfc45ecbddc831c55267e80e9c79cac. The
protobuf dependency is only used for etcd3. We can't outright remove the
etcd3 driver yet as it hasn't been long enough since we deprecated it.
That will happen soon enough though and until then we can simply cap
protobuf to an older version that is compatible with the most recent
etcd3 release.

While we're here, we also sync the lower boundaries in the docs
requirements and add some comments indicating where they come from/what
they're for.

Conflicts:
  requirements.txt

NOTE(stephenfin): Conflicts are due to the absence of change
I14a01f0a9989195e30c3ed0dadec35490f41bd48 ("[ussuri][goal] Drop python
2.7 support and testing"). As the name would suggest, this is an
Ussuri-only thing that we can't backport.

Changes:
  setup.cfg
  test-requirements.txt
  tooz/drivers/mysql.py

NOTE(stephenfin): We also need to set some caps for libraries that
failed to indicate that they had dropped Python 2.7 support using the
proper 'python_requires' setuptools keyword (or equivalent). This
includes 'grpcio' and 'sysv-ipc' (dependencies on the 'etcd3' and 'ipc'
extras in 'setup.cfg', respectively) and 'pifpaf' in
'test-requirements.txt'. We also need to blacklist etcd3gw 0.2.6 to keep
the requirements job happy. This was done elsewhere via change
I22b955419014dd34c63e406c488e0636ffe9013b. Finally, we need to fix a
breakage with PyMySQL 0.10.0. In that version a Connection is no longer
a context manager. We fix this by simply getting a Cursor out of it
(locks don't seem to interact with transactions, at least according to
MariaDB docs). This was done elsewhere via change
I5ea06ebd2b976465ff82f10a74e140f30e9e803f.

Change-Id: I8d6647118be22b0ce55e01b7e5451612ebe30e73
Signed-off-by: Stephen Finucane &lt;stephenfin@redhat.com&gt;
(cherry picked from commit e3de0e634af62e46162eb8d2354416ce4f2ba77c)
(cherry picked from commit 73dbe0e6fc1403cbb121985781d7b6ec996b099a)
(cherry picked from commit 8ca40da4bbe813a76cd48d3e8e54b78d10f25765)
(cherry picked from commit 59da4d8d6aae828c2fd36d1ddf12652c3cee7f7a)
</pre>
</div>
</content>
</entry>
<entry>
<title>[stable-only] Cap stestr for python 2</title>
<updated>2020-03-31T14:29:31+00:00</updated>
<author>
<name>Elod Illes</name>
<email>elod.illes@est.tech</email>
</author>
<published>2020-03-30T13:10:09+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/tooz.git/commit/?id=13a6dffa32789ac91b724977ed1d73375baf0824'/>
<id>13a6dffa32789ac91b724977ed1d73375baf0824</id>
<content type='text'>
stestr dropped python 2 support with version 3.0.0 and tooz does not
use constraints from openstack/requirements, so test-requirements.txt
is updated to use stestr&lt;3.0.0 in case of python 2.

Since tooz do not consume upper-constraints there is no need for
requirement check job either so it is removed, too.

Change-Id: I7a75be587efc2098e919f1ea34f9ffc357203dfb
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
stestr dropped python 2 support with version 3.0.0 and tooz does not
use constraints from openstack/requirements, so test-requirements.txt
is updated to use stestr&lt;3.0.0 in case of python 2.

Since tooz do not consume upper-constraints there is no need for
requirement check job either so it is removed, too.

Change-Id: I7a75be587efc2098e919f1ea34f9ffc357203dfb
</pre>
</div>
</content>
</entry>
<entry>
<title>Update .gitreview for stable/train</title>
<updated>2019-09-20T17:45:14+00:00</updated>
<author>
<name>OpenStack Release Bot</name>
<email>infra-root@openstack.org</email>
</author>
<published>2019-09-20T17:45:14+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/tooz.git/commit/?id=966f25804fd2b32bc49993e8faaed25339bccb35'/>
<id>966f25804fd2b32bc49993e8faaed25339bccb35</id>
<content type='text'>
Change-Id: I888fc36ae50f49bd2822405be6c91d867f57f63f
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: I888fc36ae50f49bd2822405be6c91d867f57f63f
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge "Add Python 3 Train unit tests"</title>
<updated>2019-08-12T14:57:01+00:00</updated>
<author>
<name>Zuul</name>
<email>zuul@review.opendev.org</email>
</author>
<published>2019-08-12T14:57:01+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/tooz.git/commit/?id=5b280a85c548ecc247e4bd491841aef4d8575257'/>
<id>5b280a85c548ecc247e4bd491841aef4d8575257</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix wrong log level during heartbeat</title>
<updated>2019-07-24T05:20:36+00:00</updated>
<author>
<name>Kaifeng Wang</name>
<email>kaifeng.w@gmail.com</email>
</author>
<published>2019-07-24T05:14:14+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/tooz.git/commit/?id=a4f1288ee4234865a4db8b9c191ba275e2deef3d'/>
<id>a4f1288ee4234865a4db8b9c191ba275e2deef3d</id>
<content type='text'>
It appears that tooz used log.warning which is a method
instead of an integer required by tenacity.

Change-Id: I0dd40f578ff0fc7bd1cd64c7889de2148ae6b06c
Closes-Bug: #1837693
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It appears that tooz used log.warning which is a method
instead of an integer required by tenacity.

Change-Id: I0dd40f578ff0fc7bd1cd64c7889de2148ae6b06c
Closes-Bug: #1837693
</pre>
</div>
</content>
</entry>
</feed>
