[ https://issues.apache.org/jira/browse/COUCHDB-1901?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13785440#comment-13785440 ]
ASF subversion and git services commented on COUCHDB-1901: ---------------------------------------------------------- Commit eb137e3f8c3b618020b6d1032bcb35238d93c2e1 in branch refs/heads/master from [~djc] [ https://git-wip-us.apache.org/repos/asf?p=couchdb.git;h=eb137e3 ] Add note about COUCHDB-1901 to changelog. > 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.1#6144)