This is an automated email from the ASF dual-hosted git repository. jiahuili430 pushed a commit to branch catch-nodedown-in-ddoc-cache in repository https://gitbox.apache.org/repos/asf/couchdb.git
commit df2a3390b388ff4276135294aff283c93b7ab62b Author: Jiahui Li <[email protected]> AuthorDate: Fri May 30 21:42:08 2025 -0500 Fix `function_clause` in `ddoc_cache` Error log: ``` exit value:#012{ {function_clause, [ { lists, flatmap_1, [#Fun<ddoc_cache_entry_validation_funs.0.82671214>, {nodedown, <<"progress not possible">>}], [{file, "lists.erl"}, {line, 1578}] }, { ddoc_cache_entry_validation_funs, recover, 1, [{file, "src/ddoc_cache_entry_validation_funs.erl"}, {line, 30}] }, { couch_db, '-load_validation_funs/1-fun-0-', 1, [{file, "src/couch_db.erl"}, {line, 972}] } ]} }#012 ``` --- .../src/ddoc_cache_entry_validation_funs.erl | 25 +++++++++++++--------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/src/ddoc_cache/src/ddoc_cache_entry_validation_funs.erl b/src/ddoc_cache/src/ddoc_cache_entry_validation_funs.erl index 54f5c673f..86d45a5a2 100644 --- a/src/ddoc_cache/src/ddoc_cache_entry_validation_funs.erl +++ b/src/ddoc_cache/src/ddoc_cache_entry_validation_funs.erl @@ -27,16 +27,21 @@ ddocid(_) -> recover(DbName) -> {ok, DDocs} = fabric:design_docs(mem3:dbname(DbName)), - Funs = lists:flatmap( - fun(DDoc) -> - case couch_doc:get_validate_doc_fun(DbName, DDoc) of - nil -> []; - Fun -> [Fun] - end - end, - DDocs - ), - {ok, Funs}. + case is_list(DDocs) of + true -> + Funs = lists:flatmap( + fun(DDoc) -> + case couch_doc:get_validate_doc_fun(DbName, DDoc) of + nil -> []; + Fun -> [Fun] + end + end, + DDocs + ), + {ok, Funs}; + false -> + throw({error, DDocs}) + end. insert(_, _) -> ok.
