From 420d996f8da6965e754128223be963244fc4f0f4 Mon Sep 17 00:00:00 2001 From: Santiago San Martin Date: Sat, 19 Jul 2025 16:12:12 -0300 Subject: [PATCH] [Lock] Fallback to `eval` when `LOAD` fails due to missing script --- src/Symfony/Component/Lock/Store/RedisStore.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/Lock/Store/RedisStore.php b/src/Symfony/Component/Lock/Store/RedisStore.php index 3ff1de6fa5171..89d10b75ee9c2 100644 --- a/src/Symfony/Component/Lock/Store/RedisStore.php +++ b/src/Symfony/Component/Lock/Store/RedisStore.php @@ -294,7 +294,13 @@ private function evaluate(string $script, string $resource, array $args): mixed } } - $this->handlePredisError(fn () => $this->redis->script('LOAD', $script)); + if ($this->redis->getConnection() instanceof \Predis\Connection\Cluster\ClusterInterface) { + foreach ($this->redis as $connection) { + $this->handlePredisError(fn () => $connection->script('LOAD', $script)); + } + } else { + $this->handlePredisError(fn () => $this->redis->script('LOAD', $script)); + } return $this->handlePredisError(fn () => $this->redis->evalSha($scriptSha, 1, $resource, ...$args)); }