# HG changeset patch # User Kim Alvefur # Date 1701018133 -3600 # Node ID 53c347043cb56687afdf2694e112adb6cda2da38 # Parent a74251a790edb351514af915eb44dae8505e642f mod_storage_internal: Clear archive item count cache after experimental trim The previous count would be invalid at this point. Should be possible to math out how many items are left, but this is left as future work. diff -r a74251a790ed -r 53c347043cb5 plugins/mod_storage_internal.lua --- a/plugins/mod_storage_internal.lua Sun Nov 26 17:41:38 2023 +0100 +++ b/plugins/mod_storage_internal.lua Sun Nov 26 18:02:13 2023 +0100 @@ -348,6 +348,7 @@ end function archive:trim(username, to_when) + local cache_key = jid_join(username, host, self.store); local list, err = datamanager.list_open(username, host, self.store); if not list then if err == nil then @@ -378,13 +379,14 @@ if i == 1 then return 0; end local ok, err = datamanager.list_shift(username, host, self.store, i); if not ok then return ok, err; end + archive_item_count_cache:set(cache_key, nil); -- TODO calculate how many items are left return i-1; end function archive:delete(username, query) local cache_key = jid_join(username, host, self.store); if not query or next(query) == nil then - archive_item_count_cache:set(cache_key, nil); + archive_item_count_cache:set(cache_key, nil); -- nil because we don't check if the following succeeds return datamanager.list_store(username, host, self.store, nil); end