From b1a66199a3cd71381cf9a5fee787bac5cbb9982b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carl-Gerhard=20Lindesva=CC=88rd?= Date: Sun, 9 Feb 2025 07:21:17 +0100 Subject: [PATCH] fix(buffer): unpack error --- packages/db/src/buffers/event-buffer-redis.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/db/src/buffers/event-buffer-redis.ts b/packages/db/src/buffers/event-buffer-redis.ts index 30b9c559..b4edc186 100644 --- a/packages/db/src/buffers/event-buffer-redis.ts +++ b/packages/db/src/buffers/event-buffer-redis.ts @@ -90,7 +90,12 @@ for i, sessionId in ipairs(sessionIds) do if #events == 0 then table.insert(sessionsToRemove, sessionId) - elseif #events >= minEvents then -- Use the parameter instead of hardcoded value + -- If we have collected 100 sessions to remove, remove them now + if #sessionsToRemove >= 100 then + redis.call('ZREM', sessionSortedKey, unpack(sessionsToRemove)) + sessionsToRemove = {} + end + elseif #events >= minEvents then result[resultIndex] = { sessionId = sessionId, events = events } resultIndex = resultIndex + 1 totalEvents = totalEvents + #events @@ -100,6 +105,7 @@ for i, sessionId in ipairs(sessionIds) do end end +-- Remove any remaining sessions if #sessionsToRemove > 0 then redis.call('ZREM', sessionSortedKey, unpack(sessionsToRemove)) end