This is an automated email from the ASF dual-hosted git repository. vatamane pushed a commit to branch handle-database-deletion-in-auto-purge-ttl in repository https://gitbox.apache.org/repos/asf/couchdb.git
commit 19043811ffccc29a38eb395dbf9ba40f614ddb01 Author: Nick Vatamaniuc <[email protected]> AuthorDate: Wed Mar 11 17:36:51 2026 -0400 Handle a just deleted db in auto-purge plugin Noticed this in production logs: ``` database_does_not_exist at mem3_shards:load_from_db/1(line:463) <= mem3_shards:load_opts_from_disk/1(line:436) <= mem3:props/1(line:122) <= fabric_auto_purge:get/1(line:22) <= couch_auto_purge_plugin:ttl/2(line:195) <= couch_auto_purge_plugin:db/2(line:66) ``` The plugin crashes and resumes from the checkpoint and makes further progress, but since this is an expected case it might be a bit nicer to anticipate and handle it cleaner. --- src/couch/src/couch_auto_purge_plugin.erl | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/couch/src/couch_auto_purge_plugin.erl b/src/couch/src/couch_auto_purge_plugin.erl index 5589be244..1f7713eaa 100644 --- a/src/couch/src/couch_auto_purge_plugin.erl +++ b/src/couch/src/couch_auto_purge_plugin.erl @@ -63,11 +63,14 @@ checkpoint(St) -> end. db(St, DbName) -> - case ttl(St, DbName) of + try ttl(St, DbName) of TTL when is_integer(TTL) -> {ok, St#{ttl => TTL}}; undefined -> {skip, St} + catch + error:database_does_not_exist -> + {skip, St} end. db_opened(#{} = St, Db) ->
