litellm/tests/test_litellm/proxy/db/db_transaction_queue
Yassin Kortam 187b205b34
fix(pod_lock): release cron lock by matching async_set_cache JSON encoding (#30600)
acquire_lock stores the pod_id through async_set_cache, which JSON-encodes
the value, so Redis holds the quoted string "<pod_id>". release_lock's Lua
compare-and-delete compared the raw pod_id, so the equality check never
matched and the lock was never deleted; it only cleared on TTL expiry. That
stalled the spend-update drain whenever the leader pod restarted, letting the
litellm_daily_*_spend_update_buffer lists grow unbounded in Redis.

Compare against json.dumps(self.pod_id) so the release matches the stored
value. The GET+DEL fallback already round-trips through async_get_cache and is
unaffected.

Co-authored-by: Claude <noreply@anthropic.com>
2026-06-17 17:01:04 -07:00
..
test_base_update_queue.py style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
test_daily_spend_update_queue.py Litellm fix GitHub action testing (#11163) 2025-05-26 14:41:42 -07:00
test_pod_lock_manager.py fix(pod_lock): release cron lock by matching async_set_cache JSON encoding (#30600) 2026-06-17 17:01:04 -07:00
test_redis_update_buffer.py chore: litellm oss staging160626 (#30527) 2026-06-16 18:23:13 -07:00
test_spend_logs_partition_manager.py feat(spend_logs): opt-in native Postgres partitioning for SpendLogs retention (#29466) 2026-06-11 11:02:42 -07:00
test_spend_update_queue.py fix(proxy): avoid in-place mutation in SpendUpdateQueue aggregation (#20876) 2026-02-10 22:36:03 -08:00
test_tool_discovery_queue.py feat(proxy): tool policies - auto-discover tools + policy enforcement guardrail (#22041) 2026-02-24 16:27:06 -08:00