Skip to content

Commit 4807908

Browse files
authored
Fix Missing ClusterPipeline Lock (#2190)
* ClusterPipeline needs to initialize self._lock, otherwise a class instance will fail when calling get_redis_connection on the node * fix bad lint picked up from master * added change to CHANGES file * force ci build again * force ci build again
1 parent 84418d6 commit 4807908

File tree

4 files changed

+8
-0
lines changed

4 files changed

+8
-0
lines changed

CHANGES

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
* Remove verbose logging when initializing ClusterPubSub, ClusterPipeline or RedisCluster
1010
* Fix broken connection writer lock-up for asyncio (#2065)
1111
* Fix auth bug when provided with no username (#2086)
12+
* Fix missing ClusterPipeline._lock (#2189)
1213

1314
* 4.1.3 (Feb 8, 2022)
1415
* Fix flushdb and flushall (#1926)

redis/cluster.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -754,6 +754,7 @@ def pipeline(self, transaction=None, shard_hint=None):
754754
cluster_error_retry_attempts=self.cluster_error_retry_attempts,
755755
read_from_replicas=self.read_from_replicas,
756756
reinitialize_steps=self.reinitialize_steps,
757+
lock=self._lock,
757758
)
758759

759760
def lock(
@@ -1754,6 +1755,7 @@ def __init__(
17541755
read_from_replicas=False,
17551756
cluster_error_retry_attempts=5,
17561757
reinitialize_steps=10,
1758+
lock=None,
17571759
**kwargs,
17581760
):
17591761
""" """
@@ -1776,6 +1778,9 @@ def __init__(
17761778
kwargs.get("encoding_errors", "strict"),
17771779
kwargs.get("decode_responses", False),
17781780
)
1781+
if lock is None:
1782+
lock = threading.Lock()
1783+
self._lock = lock
17791784

17801785
def __repr__(self):
17811786
""" """

redis/commands/json/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ def pipeline(self, transaction=True, shard_hint=None):
113113
cluster_error_retry_attempts=self.client.cluster_error_retry_attempts,
114114
read_from_replicas=self.client.read_from_replicas,
115115
reinitialize_steps=self.client.reinitialize_steps,
116+
lock=self.client._lock,
116117
)
117118

118119
else:

redis/commands/timeseries/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ def pipeline(self, transaction=True, shard_hint=None):
7777
cluster_error_retry_attempts=self.client.cluster_error_retry_attempts,
7878
read_from_replicas=self.client.read_from_replicas,
7979
reinitialize_steps=self.client.reinitialize_steps,
80+
lock=self.client._lock,
8081
)
8182

8283
else:

0 commit comments

Comments
 (0)