You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by fd...@apache.org on 2010/09/06 17:08:38 UTC
svn commit: r993064 -
/couchdb/branches/new_replicator/src/couchdb/couch_replicate.erl
Author: fdmanana
Date: Mon Sep 6 15:08:38 2010
New Revision: 993064
URL: http://svn.apache.org/viewvc?rev=993064&view=rev
Log:
New replicator: deal with errors (db_not_found, unauthorized) when checking the source DB's last seq.
Modified:
couchdb/branches/new_replicator/src/couchdb/couch_replicate.erl
Modified: couchdb/branches/new_replicator/src/couchdb/couch_replicate.erl
URL: http://svn.apache.org/viewvc/couchdb/branches/new_replicator/src/couchdb/couch_replicate.erl?rev=993064&r1=993063&r2=993064&view=diff
==============================================================================
--- couchdb/branches/new_replicator/src/couchdb/couch_replicate.erl (original)
+++ couchdb/branches/new_replicator/src/couchdb/couch_replicate.erl Mon Sep 6 15:08:38 2010
@@ -88,7 +88,7 @@ do_replication_loop(#rep{options = Optio
Continuous = get_value(continuous, Options, false),
Seq = case {DocIds, Continuous} of
{undefined, false} ->
- last_seq(Src);
+ last_seq(Src, Rep#rep.user_ctx);
_ ->
undefined
end,
@@ -122,12 +122,15 @@ maybe_retry(RepResult, _Rep, _Seq) ->
RepResult.
-last_seq(DbName) ->
- {ok, Db} = couch_api_wrap:db_open(
- DbName, [{user_ctx, #user_ctx{roles = [<<"_admin">>]}}]),
- {ok, DbInfo} = couch_api_wrap:get_db_info(Db),
- couch_api_wrap:db_close(Db),
- get_value(<<"update_seq">>, DbInfo).
+last_seq(DbName, UserCtx) ->
+ case (catch couch_api_wrap:db_open(DbName, [{user_ctx, UserCtx}])) of
+ {ok, Db} ->
+ {ok, DbInfo} = couch_api_wrap:get_db_info(Db),
+ couch_api_wrap:db_close(Db),
+ get_value(<<"update_seq">>, DbInfo);
+ _ ->
+ undefined
+ end.
start_replication(#rep{id = {BaseId, Extension}} = Rep) ->