diff --git a/packages/cubejs-query-orchestrator/orchestrator/QueryQueue.js b/packages/cubejs-query-orchestrator/orchestrator/QueryQueue.js index 0ec8f2baf042e..c6d9906f34fb7 100644 --- a/packages/cubejs-query-orchestrator/orchestrator/QueryQueue.js +++ b/packages/cubejs-query-orchestrator/orchestrator/QueryQueue.js @@ -318,9 +318,26 @@ class QueryQueue { processingLockAcquired, query, insertedCount, - activeKeys + activeKeys, + activated, + queryExists: !!query }); - await redisClient.freeProcessingLock(queryKey, processingId, activated); + const currentProcessingId = await redisClient.freeProcessingLock(queryKey, processingId, activated); + if (currentProcessingId) { + this.logger('Skipping free processing lock', { + processingId, + currentProcessingId, + queryKey: query && query.queryKey || queryKey, + requestId: query && query.requestId, + queuePrefix: this.redisQueuePrefix, + processingLockAcquired, + query, + insertedCount, + activeKeys, + activated, + queryExists: !!query + }); + } } } catch (e) { this.logger('Queue storage error', { diff --git a/packages/cubejs-query-orchestrator/orchestrator/RedisQueueDriver.js b/packages/cubejs-query-orchestrator/orchestrator/RedisQueueDriver.js index 6d422d2f8c377..fa379fa8f244a 100644 --- a/packages/cubejs-query-orchestrator/orchestrator/RedisQueueDriver.js +++ b/packages/cubejs-query-orchestrator/orchestrator/RedisQueueDriver.js @@ -160,6 +160,9 @@ class RedisQueueDriverConnection { } await removeCommand .execAsync(); + return null; + } else { + return currentProcessId; } } finally { await this.redisClient.unwatchAsync();