summaryrefslogtreecommitdiff
path: root/src/couchdb/couch_rep_writer.erl
diff options
context:
space:
mode:
authorAdam Kocoloski <kocolosk@apache.org>2009-09-21 20:29:22 +0000
committerAdam Kocoloski <kocolosk@apache.org>2009-09-21 20:29:22 +0000
commit688cf651f9b7867bd54e80ac978c8827eea698b9 (patch)
treee71971b9b1ecdf40f88c54b2b2cd4b4f8f849489 /src/couchdb/couch_rep_writer.erl
parentce97451ef23bc74d1d8855c04f456eac35315b90 (diff)
attempt at gentler replication shutdown when one of the DBs is deleted
git-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@817403 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/couchdb/couch_rep_writer.erl')
-rw-r--r--src/couchdb/couch_rep_writer.erl10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/couchdb/couch_rep_writer.erl b/src/couchdb/couch_rep_writer.erl
index d88c3ee2..ffe9768f 100644
--- a/src/couchdb/couch_rep_writer.erl
+++ b/src/couchdb/couch_rep_writer.erl
@@ -46,12 +46,18 @@ writer_loop(Parent, Reader, Target) ->
write_docs(#http_db{} = Db, Docs) ->
JsonDocs = [couch_doc:to_json_obj(Doc, [revs,attachments]) || Doc <- Docs],
- ErrorsJson = couch_rep_httpc:request(Db#http_db{
+ Request = Db#http_db{
resource = "_bulk_docs",
method = post,
body = {[{new_edits, false}, {docs, JsonDocs}]},
headers = [{"x-couch-full-commit", "false"} | Db#http_db.headers]
- }),
+ },
+ ErrorsJson = case couch_rep_httpc:request(Request) of
+ {FailProps} ->
+ exit({target_error, proplists:get_value(<<"error">>, FailProps)});
+ List when is_list(List) ->
+ List
+ end,
ErrorsList =
lists:map(
fun({Props}) ->