mirror of
https://github.com/BerriAI/litellm.git
synced 2026-11-14 09:03:16 +00:00
* fix(proxy): keep a customer budget reset from being undone by a stale hierarchy cache entry The reset job now evicts the customer_org_alias entries of the organizations it resets, and a hierarchy load that began before an eviction can no longer cache what it read. The cache hands a lease out on a miss and refuses the write when the key was evicted since, on this worker and, with enable_redis_auth_cache, on any worker through a generation key checked in Redis. Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> * fix(proxy): drop auth cache memory before the generation write and skip an empty alias eviction delete cleared memory only after its new Redis round trip, so a deleted entry stayed readable on the handling worker while Redis was slow. The reset job also broadcast an empty alias eviction for a cascade with no customer organizations. * fix(proxy): delete an auth cache entry and void its leases in one script on the bulk path too The bulk delete wrote the generation and sent the DEL as two round trips, so a failed generation write still let the DEL run and an in-flight load could re-cache what it read. * fix(proxy): delete the auth cache entry before the generation write inside the script A Redis at its memory limit with noeviction refused the script at its leading SET, so the DEL never ran and a deleted entry stayed in Redis. With the DEL first the script still deletes it. * test(proxy): mark the new reset cache tests' bindings Final and use rstest for the new Rust test * fix(proxy): refuse a leased auth cache write for a key no generation key can guard * test(proxy): undo the unrelated reformat of the spend ledger parity tests * test(redis-store): mark the updated memory-only auth cache test with rstest * chore(proxy): drop two pointer comments from the cache lease code --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> |
||
|---|---|---|
| .. | ||
| image | ||
| migrations | ||
| test_alerts.py | ||
| test_chunked_in_lists.py | ||
| test_cleanup_transactions.py | ||
| test_global_spend_refresh_writer.py | ||
| test_harness_lifecycle.py | ||
| test_managed_file_flat_ids_index.py | ||
| test_migration_entrypoint.py | ||
| test_partition_transactions.py | ||
| test_performance_alerts.py | ||
| test_prisma_engine_port.py | ||
| test_prisma_migration_lock.py | ||
| test_proxy_boot_without_general_settings.py | ||
| test_proxy_database_lifespan.py | ||
| test_reader_writer_regeneration.py | ||
| test_request_log_indexes_at_boot.py | ||
| test_roi_observed.py | ||
| test_roi_sync_store.py | ||
| test_scheduled_job_runs.py | ||
| test_skill_publication.py | ||
| test_skill_submissions.py | ||
| test_spend_lock_order.py | ||
| test_spendlogs_delivery.py | ||
| test_spendlogs_ledger_parity.py | ||
| test_transaction_atomicity.py | ||
| test_v1_migration_error_logging.py | ||