mirror of
https://github.com/NixOS/nix.git
synced 2025-11-18 00:12:43 +01:00
NarInfoDiskCache: Keep BinaryCache.id stable and improve test
Fixes #3898 The entire `BinaryCaches` row used to get replaced after it became stale according to the `timestamp` column. In a concurrent scenario, this leads to foreign key conflicts as different instances of the in-process `state.caches` cache now differ, with the consequence that the older process still tries to use the `id` number of the old record. Furthermore, this phenomenon appears to have caused the cache for actual narinfos to be erased about every week, while the default ttl for narinfos was supposed to be 30 days.
This commit is contained in:
parent
2ceece3ef3
commit
fb94d5cabd
3 changed files with 73 additions and 36 deletions
|
|
@ -13,7 +13,7 @@ public:
|
|||
|
||||
virtual ~NarInfoDiskCache() { }
|
||||
|
||||
virtual void createCache(const std::string & uri, const Path & storeDir,
|
||||
virtual int createCache(const std::string & uri, const Path & storeDir,
|
||||
bool wantMassQuery, int priority) = 0;
|
||||
|
||||
struct CacheInfo
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue