Adam Kocoloski created COUCHDB-1901:
---------------------------------------
Summary: 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
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)