You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@couchdb.apache.org by Antony Blakey <an...@gmail.com> on 2009/05/28 22:33:14 UTC

Repeatable replication issue

Doesn't stop replication, but is a bug I think.

Pull replicating on trunk, with checkpoint set to every doc, I get the  
follow after every _ensure_full_commit on the client:

------------------------------------------------------------------------------
[debug] [<0.752.0>] 'POST' /acumen-users/_ensure_full_commit {1,1}
Headers: [{'Host',"localhost:5984"},{'Transfer-Encoding',"chunked"}]
[info] [<0.752.0>] 127.0.0.1 - - 'POST' /acumen-users/ 
_ensure_full_commit 201
[debug] [<0.155.0>] couch_rep HTTP put request: http://localhost:5985/acumen-users/_local%2F171f075d60a8ae9e6da9e6d523655ed6
Err: {error,closed}
[info] [<0.155.0>] retrying couch_rep HTTP put request in 1.0 seconds  
due to {error, send_failed}: http://localhost:5985/acumen-users/_local%2F171f075d60a8ae9e6da9e6d523655ed6
------------------------------------------------------------------------------

Occasionally the error is different:

------------------------------------------------------------------------------
[debug] [<0.752.0>] 'POST' /acumen-users/_ensure_full_commit {1,1}
Headers: [{'Host',"localhost:5984"},{'Transfer-Encoding',"chunked"}]
[info] [<0.762.0>] 127.0.0.1 - - 'POST' /acumen-users/ 
_ensure_full_commit 201
[debug] [<0.155.0>] couch_rep HTTP put request: http://localhost:5985/acumen-users/_local%2F171f075d60a8ae9e6da9e6d523655ed6
[info] [<0.155.0>] retrying couch_rep HTTP put request in 1.0 seconds  
due to {error, {'EXIT',
                                                                     
{noproc,
                                                                      
{gen_server,
                                                                       
call,
                                                                       
[<0.667.0>,
                                                                        
{send_req,
                                                                        {{url 
,
                                                                          "http 
://localhost:5985/acumen-users/_local 
%2F171f075d60a8ae9e6da9e6d523655ed6",
                                                                          "localhost 
",
                                                                          5985 
,
                                                                          undefined 
,
                                                                          undefined 
,
                                                                          "/acumen 
-users/_local%2F171f075d60a8ae9e6da9e6d523655ed6",
                                                                          http 
},
                                                                         [],
                                                                         put 
,
                                                                         < 
<"{\"_id\":\"_local/171f075d60a8ae9e6da9e6d523655ed6\",\"_rev\": 
\"0-57\",\"session_id\":\"10d137cf5f09c7b3ba114ab2af417de3\", 
\"source_last_seq\":101,\"history\":[{\"start_time\":\"Thu, 28 May  
2009 07:16:55 GMT\",\"end_time\":\"Thu, 28 May 2009 07:17:52 GMT\", 
\"start_last_seq\":0,\"end_last_seq\":101,\"missing_checked\": 
0,\"missing_found\":116,\"docs_read\":116,\"docs_written\": 
116,\"doc_write_failures\":0}]}">>,
                                                                         [{transfer_encoding 
,
                                                                           {chunked 
,
                                                                            65535 
}},
                                                                          {content_type 
,
                                                                           "application 
/json; charset=utf-8"},
                                                                          {max_pipeline_size 
,
                                                                           101 
},
                                                                          {response_format 
,
                                                                           binary 
}],
                                                                         infinity 
}},
                                                                        
infinity]}}}}: http://localhost:5985/acumen-users/_local%2F171f075d60a8ae9e6da9e6d523655ed6
[debug] [<0.155.0>] couch_rep HTTP put request: http://localhost:5985/acumen-users/_local%2F171f075d60a8ae9e6da9e6d523655ed6
------------------------------------------------------------------------------

Antony Blakey
--------------------------
CTO, Linkuistics Pty Ltd
Ph: 0438 840 787

Isn't it enough to see that a garden is beautiful without having to  
believe that there are fairies at the bottom of it too?
   -- Douglas Adams


Re: Repeatable replication issue

Posted by Adam Kocoloski <ko...@apache.org>.
Yep, I think I understand this one.  POSTing to _ensure_full_commit  
with no body but a Transfer-Encoding: chunked header causes the remote  
mochiweb server to close the connection.  ibrowse is in the process of  
sending the next request (the PUT of the local doc) on that connection  
when it gets the close directive, hence the error and retry.

Should be an easy fix.  We should just confirm that there's a request  
body before adding the chunked header.  At the moment we just confirm  
the verb is not GET.  Thanks,

Adam

On May 28, 2009, at 4:33 PM, Antony Blakey wrote:

> Doesn't stop replication, but is a bug I think.
>
> Pull replicating on trunk, with checkpoint set to every doc, I get  
> the follow after every _ensure_full_commit on the client:
>
> ------------------------------------------------------------------------------
> [debug] [<0.752.0>] 'POST' /acumen-users/_ensure_full_commit {1,1}
> Headers: [{'Host',"localhost:5984"},{'Transfer-Encoding',"chunked"}]
> [info] [<0.752.0>] 127.0.0.1 - - 'POST' /acumen-users/ 
> _ensure_full_commit 201
> [debug] [<0.155.0>] couch_rep HTTP put request: http://localhost:5985/acumen-users/_local%2F171f075d60a8ae9e6da9e6d523655ed6
> Err: {error,closed}
> [info] [<0.155.0>] retrying couch_rep HTTP put request in 1.0  
> seconds due to {error, send_failed}: http://localhost:5985/acumen-users/_local%2F171f075d60a8ae9e6da9e6d523655ed6
> ------------------------------------------------------------------------------
>
> Occasionally the error is different:
>
> ------------------------------------------------------------------------------
> [debug] [<0.752.0>] 'POST' /acumen-users/_ensure_full_commit {1,1}
> Headers: [{'Host',"localhost:5984"},{'Transfer-Encoding',"chunked"}]
> [info] [<0.762.0>] 127.0.0.1 - - 'POST' /acumen-users/ 
> _ensure_full_commit 201
> [debug] [<0.155.0>] couch_rep HTTP put request: http://localhost:5985/acumen-users/_local%2F171f075d60a8ae9e6da9e6d523655ed6
> [info] [<0.155.0>] retrying couch_rep HTTP put request in 1.0  
> seconds due to {error, {'EXIT',
>                                                                    
> {noproc,
>                                                                     
> {gen_server,
>                                                                      
> call,
>                                                                      
> [<0.667.0>,
>                                                                       
> {send_req,
>                                                                       {{url 
> ,
>                                                                         "http 
> ://localhost:5985/acumen-users/_local%2F171f075d60a8ae9e6da9e6d523655ed6 
> ",
>                                                                         "localhost 
> ",
>                                                                         5985 
> ,
>                                                                         undefined 
> ,
>                                                                         undefined 
> ,
>                                                                         "/acumen 
> -users/_local%2F171f075d60a8ae9e6da9e6d523655ed6",
>                                                                         http 
> },
>                                                                        [],
>                                                                        put 
> ,
>                                                                        < 
> <"{\"_id\":\"_local/171f075d60a8ae9e6da9e6d523655ed6\",\"_rev\": 
> \"0-57\",\"session_id\":\"10d137cf5f09c7b3ba114ab2af417de3\", 
> \"source_last_seq\":101,\"history\":[{\"start_time\":\"Thu, 28 May  
> 2009 07:16:55 GMT\",\"end_time\":\"Thu, 28 May 2009 07:17:52 GMT\", 
> \"start_last_seq\":0,\"end_last_seq\":101,\"missing_checked\": 
> 0,\"missing_found\":116,\"docs_read\":116,\"docs_written\": 
> 116,\"doc_write_failures\":0}]}">>,
>                                                                        [{transfer_encoding 
> ,
>                                                                          {chunked 
> ,
>                                                                           65535 
> }},
>                                                                         {content_type 
> ,
>                                                                          "application 
> /json; charset=utf-8"},
>                                                                         {max_pipeline_size 
> ,
>                                                                          101 
> },
>                                                                         {response_format 
> ,
>                                                                          binary 
> }],
>                                                                        infinity 
> }},
>                                                                       
> infinity]}}}}: http://localhost:5985/acumen-users/_local%2F171f075d60a8ae9e6da9e6d523655ed6
> [debug] [<0.155.0>] couch_rep HTTP put request: http://localhost:5985/acumen-users/_local%2F171f075d60a8ae9e6da9e6d523655ed6
> ------------------------------------------------------------------------------
>
> Antony Blakey
> --------------------------
> CTO, Linkuistics Pty Ltd
> Ph: 0438 840 787
>
> Isn't it enough to see that a garden is beautiful without having to  
> believe that there are fairies at the bottom of it too?
>  -- Douglas Adams
>


Re: Repeatable replication issue

Posted by Antony Blakey <an...@gmail.com>.
On 29/05/2009, at 6:03 AM, Antony Blakey wrote:

> Pull replicating on trunk, with checkpoint set to every doc, I get  
> the follow after every _ensure_full_commit on the client:

This doesn't happen when I replicate docs with attachments.

Antony Blakey
-------------
CTO, Linkuistics Pty Ltd
Ph: 0438 840 787

The ultimate measure of a man is not where he stands in moments of  
comfort and convenience, but where he stands at times of challenge and  
controversy.
   -- Martin Luther King