Bubble up missing_stub exceptions for proper retry A missing_stub exception is special in that the replicator retries the request without the atts_since optimmization.
COUCHDB-1901 Project: http://git-wip-us.apache.org/repos/asf/couchdb-couch-replicator/repo Commit: http://git-wip-us.apache.org/repos/asf/couchdb-couch-replicator/commit/21ab541c Tree: http://git-wip-us.apache.org/repos/asf/couchdb-couch-replicator/tree/21ab541c Diff: http://git-wip-us.apache.org/repos/asf/couchdb-couch-replicator/diff/21ab541c Branch: refs/heads/1843-feature-bigcouch Commit: 21ab541c37bcbdb0a4ac836ab5cd7243b9ced3e2 Parents: 3597d75 Author: Adam Kocoloski <[email protected]> Authored: Wed Oct 2 17:00:16 2013 -0400 Committer: Robert Newson <[email protected]> Committed: Mon Apr 28 12:03:21 2014 +0100 ---------------------------------------------------------------------- src/couch_replicator_api_wrap.erl | 2 ++ 1 file changed, 2 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/couchdb-couch-replicator/blob/21ab541c/src/couch_replicator_api_wrap.erl ---------------------------------------------------------------------- diff --git a/src/couch_replicator_api_wrap.erl b/src/couch_replicator_api_wrap.erl index 2882567..e5d28c9 100644 --- a/src/couch_replicator_api_wrap.erl +++ b/src/couch_replicator_api_wrap.erl @@ -215,6 +215,8 @@ open_doc_revs(#httpdb{} = HttpDb, Id, Revs, Options, Fun, Acc) -> receive {'DOWN', Ref, process, Pid, {exit_ok, Ret}} -> Ret; + {'DOWN', Ref, process, Pid, {{nocatch, {missing_stub,_} = Stub}, _}} -> + throw(Stub); {'DOWN', Ref, process, Pid, Else} -> Url = couch_util:url_strip_password( couch_replicator_httpc:full_url(HttpDb, [{path,Path}, {qs,QS}])
