[
https://issues.apache.org/jira/browse/COUCHDB-1901?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13980938#comment-13980938
]
ASF subversion and git services commented on COUCHDB-1901:
----------------------------------------------------------
Commit 15d75c360a5c27cc0a0d9f03a707ca5b08e31c88 in couchdb-couch-replicator's
branch refs/heads/1843-feature-bigcouch from [~kocolosk]
[
https://git-wip-us.apache.org/repos/asf?p=couchdb-couch-replicator.git;h=15d75c3
]
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
> Replicator needs to retry multipart requests atomically
> -------------------------------------------------------
>
> Key: COUCHDB-1901
> URL: https://issues.apache.org/jira/browse/COUCHDB-1901
> Project: CouchDB
> Issue Type: Bug
> Components: Replication
> Reporter: Adam Kocoloski
> Assignee: Adam Kocoloski
> Fix For: 1.5.0
>
>
> couch_replicator_httpc's retry mechanism interacts poorly with the multipart
> requests we use to transfer attachments during replication. In the case of
> PUTs, the replicator will retry a request even though it has already streamed
> part of the request body. For GETs, it can potentially interleave body data
> from the original response and the retried one.
> I put together a fix at https://github.com/cloudant/couch_replicator/pull/36
> that disables the default httpc client retry mechanism for multipart requests
> and manages the retry logic "atomically"; i.e., it retries the original GET
> request if the GET or PUT fails, and it ensures that the original GET request
> is properly terminated during the retry. I'll push a version of that patch
> to the Apache repo now.
--
This message was sent by Atlassian JIRA
(v6.2#6252)