couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF subversion and git services (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (COUCHDB-1901) Replicator needs to retry multipart requests atomically
Date Fri, 25 Apr 2014 12:11:21 GMT

    [ 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)

Mime
View raw message