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}])

Reply via email to