-
由 Stan Hu 创作于
The LUA script in the Sidekiq duplicate job middleware attempts to update the deduplicated flag in a msgpack-serialized cookie. When it writes back the key, it also tries to maintain the existing TTL. However, if the TTL becomes 0, then Redis will raise an error: "@user_script:7: ERR invalid expire time in set". When we lowered the deduplication TTL of `::Namespaces::ProcessSyncEventsWorker`from 6 hours to 1 minute in https://gitlab.com/gitlab-org/gitlab/-/merge_requests/120580, this exposed a bug in the LUA script because the tests repeatedly call this middleware. To fix this, we don't bother writing back the key if the TTL is not > 0. Relates to https://gitlab.com/gitlab-org/gitlab/-/issues/411325