You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@couchdb.apache.org by Scott Weber <sc...@sbcglobal.net> on 2014/01/23 23:27:36 UTC

Replication of attachment is extremely slow

I have seen the same thing as the poster below.  Does anyone have a fix? Work around?

It would seem that the database server is doing some kind of inspection of the 

attachments and deciding how to move them around (Based 64, UTF16, etc...).  

Is this the case?

Here is what I tried:
I attached a mixed content file to a document (text+binary, kind of like a PDF).  This was about 3 meg or so. Then I triggered a replication to another database.  It took 30 seconds to replicate it *on the same box*.

I deleted everything, and made several repeats of the this test.

I renamed the file to *.BIN, then uploaded it.  Still took too long to replicate.

I renamed the file to *.TXT, then uploaded it.  Still took too long to replicate.

I renamed the file to *.EXE, then uploaded it.  Still took too long to replicate.

However, when I upload an *actual* executable file of about the same size, it replicates it in about 1 second.

In all cases, the "content_type" of the attachment was correct to the file type.

So clearly, something internal is ignoring the "content_type", and examining the file contents. Then deciding what to do about it.

Is this expected behavior?  How can I get the system to simply pass attachments as binary without do whatever it is doing.

Thanks for any advice.

-Scott


> From "Rian R. Maloney" <ri...@yahoo.com> 
> Subject Replication of specific binary attachment is extremely slow 
> Date Tue, 21 Jan 2014 04:26:53 GMT 
> Hello Couch Community - I have an odd problem that I could use some help with. I am using 

> couch replication for attachments that are essentially a bunch of concatenated
> TIFF images with some text in between each image. When I replicate a database with a single
> document that has a single binary attachment that is only 4.5mb it takes 30+ seconds to 

> complete. 

> 
> If I zip the file it is sub second to completion 

> 
> My test cases have been on Windows 7 and Mac OS x10.7.5 running either 

> CouchDB 1.3, 1.4 or 1.5 

> 
> I am doing local replication  The CPU spikes for the entire duration 

> When I use Futon to kick off the replication, it is sub second to completion 

> but when I POST to replicate, it takes 30+ seconds ...


Re: Replication of attachment is extremely slow

Posted by Robert Samuel Newson <rn...@apache.org>.
"So clearly, something internal is ignoring the "content_type", and examining the file contents. Then deciding what to do about it."

There’s no such code in CouchDB. There’s a list of mime types that CouchDB will compress and that’s it. The attachment names are not relevant to CouchDB but it’s possible that client tools are using it to determine a mime type.

B.

On 23 Jan 2014, at 22:27, Scott Weber <sc...@sbcglobal.net> wrote:

> I have seen the same thing as the poster below.  Does anyone have a fix? Work around?
> 
> It would seem that the database server is doing some kind of inspection of the 
> 
> attachments and deciding how to move them around (Based 64, UTF16, etc...).  
> 
> Is this the case?
> 
> Here is what I tried:
> I attached a mixed content file to a document (text+binary, kind of like a PDF).  This was about 3 meg or so. Then I triggered a replication to another database.  It took 30 seconds to replicate it *on the same box*.
> 
> I deleted everything, and made several repeats of the this test.
> 
> I renamed the file to *.BIN, then uploaded it.  Still took too long to replicate.
> 
> I renamed the file to *.TXT, then uploaded it.  Still took too long to replicate.
> 
> I renamed the file to *.EXE, then uploaded it.  Still took too long to replicate.
> 
> However, when I upload an *actual* executable file of about the same size, it replicates it in about 1 second.
> 
> In all cases, the "content_type" of the attachment was correct to the file type.
> 
> So clearly, something internal is ignoring the "content_type", and examining the file contents. Then deciding what to do about it.
> 
> Is this expected behavior?  How can I get the system to simply pass attachments as binary without do whatever it is doing.
> 
> Thanks for any advice.
> 
> -Scott
> 
> 
>> From "Rian R. Maloney" <ri...@yahoo.com> 
>> Subject Replication of specific binary attachment is extremely slow 
>> Date Tue, 21 Jan 2014 04:26:53 GMT 
>> Hello Couch Community - I have an odd problem that I could use some help with. I am using 
> 
>> couch replication for attachments that are essentially a bunch of concatenated
>> TIFF images with some text in between each image. When I replicate a database with a single
>> document that has a single binary attachment that is only 4.5mb it takes 30+ seconds to 
> 
>> complete. 
> 
>> 
>> If I zip the file it is sub second to completion 
> 
>> 
>> My test cases have been on Windows 7 and Mac OS x10.7.5 running either 
> 
>> CouchDB 1.3, 1.4 or 1.5 
> 
>> 
>> I am doing local replication  The CPU spikes for the entire duration 
> 
>> When I use Futon to kick off the replication, it is sub second to completion 
> 
>> but when I POST to replicate, it takes 30+ seconds ...
> 


Re: Replication of attachment is extremely slow

Posted by Dave Cottlehuber <dc...@jsonified.com>.
> On 23. Jänner 2014 at 23:28:11, Scott Weber (scotty2541@sbcglobal.net) wrote:
>
>From: Scott Weber <sc...@sbcglobal.net>
>To: "user@couchdb.apache.org" <us...@couchdb.apache.org>
>Subject: Replication of attachment is extremely slow
> Date: 23. Jänner 2014 23:27:36 
> MEZ
I have seen the same thing as the  
> poster below.  Does anyone have a fix? Work around?
>
> is what I tried:
> I attached a mixed content file to a document  
> (text+binary, kind of like a PDF).  This was about 3 meg  
> or so. Then I triggered a replication to another database.   
> It took 30 seconds to replicate it *on the same box*.

> I deleted everything, and made several repeats of the this test.

Scott, Rian,

I don’t see this behaviour here. Would you mind trying a few things please?

- provide public accessible test files
- couch.log in debug mode preferably 
- get very specific on what is done, preferably via curl
- or python http tool from httpie.org***
- this ideally should be shell-scriptable
- and provide results incl timing
- any handwavey statements about your DB size & doc types, & overall couch instance might be doing at that time?

e.g. I’m doing this, on a well-specd MBP early 2011, OSX 10.9.1,
running couch master 37c8459 on R16B03 in admin party, using 
3 files:

# approx 60MB pdf mainly with embedded images
https://github.com/steveklabnik/CLOSURE/blob/master/CLOSURE.pdf?raw=true
# 370K text-based PDF
http://tools.ietf.org/pdf/draft-ietf-ppsp-peer-protocol-08.pdf
# ~20MB pdf mainly text
http://hintjens.wdfiles.com/local--files/main%3Afiles/cc1pe.pdf

alias pie="http --verify=no --json --pretty all --verbose --style fruity”
COUCH=http://localhost:5984

# drop testy dbs and create new ones
pie delete $COUCH/testy
pie delete $COUCH/testy2
pie delete $COUCH/testy3
pie put $COUCH/testy
pie put $COUCH/testy2
pie put $COUCH/testy3

time pie put $COUCH/testy/ietf/ppsp-8 < /tmp/draft-ietf-ppsp-peer-protocol-08.pdf
>> .22s user 0.07s system 86% cpu 0.333 total

time pie put $COUCH/testy/cc1pe/cc1pe < /tmp/cc1pe.pdf
>> 0.22s user 0.11s system 0% cpu 2:31.16 total

time pie put $COUCH/testy/why/closure < /tmp/CLOSURE.pdf
>> 0.23s user 0.18s system 0% cpu 7:21.40 total

# replicate using _replicate API
time pie post $COUCH/_replicate source=testy target=testy2
>> 0.22s user 0.07s system 13% cpu 2.070 total

# replicate using _replicator DB
pie post $COUCH/_replicator _id=t3 source=testy target=testy3
pie get $COUCH/_replicator/t3
# its more work to get the duration out here, subtract the two once complete
>>  less than 2 seconds

For comparison

### The same files, to a remote large FreeBSD box running 1.5.0 + R16B02:

swift:
>> 0.26s user 0.09s system 26% cpu 1.311 total

cc1pe:
>>   0.31s user 0.50s system 0% cpu 1:46.56 total

closure:
>> 0.51s user 1.35s system 1% cpu 2:42.87 total

replication:
>> 0.27s user 0.09s system 14% cpu 2.477 total
>>  less than 2 seconds

### The same files to a local CouchDB 1.2.2 & R15B03:

swift:
>>   0.22s user 0.06s system 86% cpu 0.317 total

cc1pe:
>>  0.24s user 0.11s system 0% cpu 2:51.28 total

closure:
>> 0.23s user 0.20s system 0% cpu 4:55.81 total

replication:
>> 0.21s user 0.06s system 16% cpu 1.661 total

### ditto, but with cloudant on presumably linux shared infrastructure 

swift:
>> 0.26s user 0.08s system 25% cpu 1.342 total

cc1pe:
>> .79s user 0.54s system 3% cpu 42.128 total

closure:
>> 1.78s user 1.36s system 1% cpu 3:37.14 total

- skipped replication because its not a fair comparison.



*** I like httpie because I can do this:

   http post $COUCH/_replicate source=testy target=testy2

which is pretty damn handy.



Re: Replication of attachment is extremely slow

Posted by Scott Weber <sc...@sbcglobal.net>.
Well, as much as I hate to be a victim of "operator error", it appears that is the case.  There is still an issue, but it seems to be dependent on an external process.

What I did:
Stopped the service, and removed the logs and 'to'/'from' databases.  Started the service, and uploaded a 4 meg file as an attachment.  Then triggered a replication.  It took over 30 seconds.  I repeated this test, and it was very long to replicate every time.

Figuring I would post the log and the 4 meg file, I looked in the log for confidential stuff.  I then went back and disabled some script daemons running from settings in the INI, as well as the continuous replications in the _replicator database.  The PHP scripts are largely idle, but trigger a query command every 30 seconds or so.

When I repeated the test, it was instantaneous.  Several times.  I could get a long delay result.

So it would appear (at least so far) that some PHP script was causing a thread or socket to block.  At this stage I can't tell which side the blame is on, but I can speculate that it is something going on between the two of them.

So, steering the conversation another way, is there a potential problem with with perhaps leaving an open socket connection after a replication command has been issued?

I will start to re-enable these other components and see when the issue returns.

-Scott





----- Original Message -----
From: Nick North <no...@gmail.com>
To: "user@couchdb.apache.org" <us...@couchdb.apache.org>
Cc: 
Sent: Friday, January 24, 2014 7:06 AM
Subject: Re: Replication of attachment is extremely slow

On 24 January 2014 12:44, Dave Cottlehuber <dc...@jsonified.com> wrote:

> On 24. Jänner 2014 at 08:23:16, Nick North (north.n@gmail.com) wrote:
> > From: Nick North <no...@gmail.com>
>
> > There is a known inefficiency
> > in parsing of attachments containing certain character strings.
> > This doesn't obviously sound like an instance of it, but you can
> > eliminate the possibility very quickly if you replace all hyphens
> > (i.e. the character "-") in your mixed content file by some other
> > character, like "X". If replication of the modified file runs
> > quickly, you've hit this particular problem.
> > Nick
>
> Hey Nick, https://issues.apache.org/jira/browse/COUCHDB-1953 thanks
> for bringing that up. I’ve quickly re-done my timing checks with that
> and see no major difference, do you want to compare a few with some
> other modified test docs and see how that looks?
>
> A+
> Dave
>
>
I'm not really expecting this problem to be the cause of the slowdown:
the attachment needs to contain a lot of initial prefixes of the MIME
boundary string for things to be really bad. While the patch speeds up
parsing in all cases, I suspect the processing time is usually dominated by
other parts of the process. I just mentioned it as it's the only bit of
code I know whose performance varies with attachment content, so it's worth
a try. It would be great if Scott is able to put his offending file up
somewhere for us to try out.

Nick


Re: Replication of attachment is extremely slow.. LOGGED INFORMATION

Posted by "Rian R. Maloney" <ri...@yahoo.com>.
Thanks EVERYONE for the assistance on this one. Much appreciated! Great user group

The following curl batch script consistently recreates the problem. 

The difference between a fast and slow replication is whether or not the full URL is used for the "from" and "to" databases

cls
echo off

echo start from scratch
c:\es\curl\curl -X DELETE http://admin:admin@127.0.0.1:5984/from
c:\es\curl\curl -X DELETE http://admin:admin@127.0.0.1:5984/to
rem c:\es\curl\curl -X DELETE http://admin:admin@127.0.0.1:5984/_replicator/test?rev=

return

echo create from database
c:\es\curl\curl -X PUT http://admin:admin@127.0.0.1:5984/from

echo _
echo create to database
c:\es\curl\curl -X PUT http://admin:admin@127.0.0.1:5984/to

echo _
echo create dummy document to hold attachment
c:\es\curl\curl -X PUT -d "{\"dummy\":\"slow\"}" http://admin:admin@127.0.0.1:5984/from/test

echo _
echo upload the problem attachment - BE SURE TO SET THE REVISION NUMBER 
c:\es\curl\curl -X PUT http://127.0.0.1:5984/from/test/x937?rev=1-23a888c74ba58fe20dc0d424133750bb --data-binary @slow.x937 -H "Content-Type: application/octet-stream"

echo _
echo time before %TIME%
echo _

rem echo FAST REPLICATION %TIME%
rem c:\es\curl\curl -H "Content-Type: application/json" -X POST -d "{\"source\":\"from\",\"target\":\"to\"}" http://admin:admin@127.0.0.1:5984/_replicate


echo SLOW REPLICATION %TIME%
c:\es\curl\curl -H "Content-Type: application/json" -X POST -d "{\"source\":\"http://127.0.0.1:5984/from\",\"target\":\"http://127.0.0.1:5984/to\"}" http://admin:admin@127.0.0.1:5984/_replicate


echo time after  %TIME%
 



On Friday, January 24, 2014 2:26 PM, Paul Davis <pa...@gmail.com> wrote:
 
The important thing to note here is that test 1 is using URLs for
databases where tests 2 and 3 are using internal replication. Reading
the logs it shows that the request to write the attachment took about
72 seconds. Out of curiosity could you rerun test 3 twice more with
the following JSON bodies:

{"from":"http://localhost:5984/from", "to":"to"}
{"from":"from", "to":"http://localhost:5984/to"}

This should narrow down if there's a problem with reading attachments,
writing attachments, or some weird interplay between reading and
writing attachments.

If it turns out that the only slow version is when both are using the
"http://localhost:5984/dbname" versions then can you run one more
test:

{"from":"http://127.0.0.1:5984/from", "to":"http://localhost:5984/to"}

If that's also slow then we probably have a weird problem with the
multipart code (fun!). If its not slow then most likely this is a bug
in the HTTP worker pool implementation (also fun!).

Re: Replication of attachment is extremely slow.. LOGGED INFORMATION

Posted by "Rian R. Maloney" <ri...@yahoo.com>.
Thanks EVERYONE for the assistance on this one. Much appreciated! Great user group

The following curl batch script consistently recreates the problem. 

The difference between a fast and slow replication is whether or not the full URL is used for the "from" and "to" databases

cls
echo off

echo start from scratch
c:\es\curl\curl -X DELETE http://admin:admin@127.0.0.1:5984/from
c:\es\curl\curl -X DELETE http://admin:admin@127.0.0.1:5984/to
rem c:\es\curl\curl -X DELETE http://admin:admin@127.0.0.1:5984/_replicator/test?rev=

return

echo create from database
c:\es\curl\curl -X PUT http://admin:admin@127.0.0.1:5984/from

echo _
echo create to database
c:\es\curl\curl -X PUT http://admin:admin@127.0.0.1:5984/to

echo _
echo create dummy document to hold attachment
c:\es\curl\curl -X PUT -d "{\"dummy\":\"slow\"}" http://admin:admin@127.0.0.1:5984/from/test

echo _
echo upload the problem attachment - BE SURE TO SET THE REVISION NUMBER 
c:\es\curl\curl -X PUT http://127.0.0.1:5984/from/test/x937?rev=1-23a888c74ba58fe20dc0d424133750bb --data-binary @slow.x937 -H "Content-Type: application/octet-stream"

echo _
echo time before %TIME%
echo _

rem echo FAST REPLICATION %TIME%
rem c:\es\curl\curl -H "Content-Type: application/json" -X POST -d "{\"source\":\"from\",\"target\":\"to\"}" http://admin:admin@127.0.0.1:5984/_replicate


echo SLOW REPLICATION %TIME%
c:\es\curl\curl -H "Content-Type: application/json" -X POST -d "{\"source\":\"http://127.0.0.1:5984/from\",\"target\":\"http://127.0.0.1:5984/to\"}" http://admin:admin@127.0.0.1:5984/_replicate


echo time after  %TIME%
 



On Friday, January 24, 2014 2:26 PM, Paul Davis <pa...@gmail.com> wrote:
 
The important thing to note here is that test 1 is using URLs for
databases where tests 2 and 3 are using internal replication. Reading
the logs it shows that the request to write the attachment took about
72 seconds. Out of curiosity could you rerun test 3 twice more with
the following JSON bodies:

{"from":"http://localhost:5984/from", "to":"to"}
{"from":"from", "to":"http://localhost:5984/to"}

This should narrow down if there's a problem with reading attachments,
writing attachments, or some weird interplay between reading and
writing attachments.

If it turns out that the only slow version is when both are using the
"http://localhost:5984/dbname" versions then can you run one more
test:

{"from":"http://127.0.0.1:5984/from", "to":"http://localhost:5984/to"}

If that's also slow then we probably have a weird problem with the
multipart code (fun!). If its not slow then most likely this is a bug
in the HTTP worker pool implementation (also fun!).

Re: Replication of attachment is extremely slow.. LOGGED INFORMATION

Posted by Scott Weber <sc...@sbcglobal.net>.
A sa  follow up to these tests, I replaced the data file from it's mixed content with an EXE file.  Specifically the Notepad++ installer, version 5.9.3 which is 5,554,176 bytes.

I picked it because it is close in size to the other file so see if anything jumps out.

It does.

The EXE installer (renamed to just "exetest.bin") replicated in about 6 seconds using both "localhosts"

  "source" : "http://localhost:5984/from"
  "target" : "http://localhost:5984/to"

I find this rather amazing.  
So I placed the original mixed content file into a ZIP file. File is a ZIP is 2,107,241, or about half the size.
And retested them one after the other.

  "source" : "http://localhost:5984/from"
  "target" : "http://localhost:5984/to"
Original file was still 60 seconds
The zipped file was 1.25 seconds

Even more amazing.

So this is something else to contemplate.   I will post the files if anyone wants copies.


-Scott




----- Original Message -----
From: Scott Weber <sc...@sbcglobal.net>
To: "user@couchdb.apache.org" <us...@couchdb.apache.org>
Cc: 
Sent: Friday, January 24, 2014 3:03 PM
Subject: Re: Replication of attachment is extremely slow.. LOGGED INFORMATION

Ah.  Now we have something.

It was really easy to change the PHP script and re-run the batch file.  Over and over.  So I have a bunch of tests.

When the script was modified to use only the names "to" and "from"  It worked fast... Really fast.  But any combination of the "localhost" was very long.

  "source" : "http://localhost:5984/from"
  "target" : "http://localhost:5984/to"
60 seconds


  "source" : "http://localhost:5984/from"
  "target" : "to"
60 seconds


  "source" : "from"
  "target" : "http://localhost:5984/to"
40 seconds 


  "source" : "from"
  "target" : "to"
2 seconds


Replacing "localhost" with 127.0.0.1 cut about 10 seconds off.

  "source" : "http://127.0.0.1:5984/from"
  "target" : "http://127.0.0.1:5984/to"
60 seconds  (well, it didn't cut any time off this one)


  "source" : "http://127.0.0.1:5984/from"
  "target" : "to"
40 seconds


  "source" : "from"
  "target" : "http://127.0.0.1:5984/to"
30 seconds  


And lastly:  "source" : "http://localhost:5984/from"
  "target" : "http://127.0.0.1:5984/to"
60 seconds

So localhost is basically the same as 127.0.0.1.  
And any permutation of using the url causes delays.

Sounds like it should fall under "also fun".

Thanks so far. It appears this may be solvable.

-Scott



----- Original Message -----
From: Paul Davis <pa...@gmail.com>
To: "user@couchdb.apache.org" <us...@couchdb.apache.org>; Scott Weber <sc...@sbcglobal.net>
Cc: "replication@couchdb.apache.org" <re...@couchdb.apache.org>
Sent: Friday, January 24, 2014 2:25 PM
Subject: Re: Replication of attachment is extremely slow.. LOGGED INFORMATION

The important thing to note here is that test 1 is using URLs for
databases where tests 2 and 3 are using internal replication. Reading
the logs it shows that the request to write the attachment took about
72 seconds. Out of curiosity could you rerun test 3 twice more with
the following JSON bodies:

{"from":"http://localhost:5984/from", "to":"to"}
{"from":"from", "to":"http://localhost:5984/to"}

This should narrow down if there's a problem with reading attachments,
writing attachments, or some weird interplay between reading and
writing attachments.

If it turns out that the only slow version is when both are using the
"http://localhost:5984/dbname" versions then can you run one more
test:

{"from":"http://127.0.0.1:5984/from", "to":"http://localhost:5984/to"}

If that's also slow then we probably have a weird problem with the
multipart code (fun!). If its not slow then most likely this is a bug
in the HTTP worker pool implementation (also fun!).

Re: Replication of attachment is extremely slow.. LOGGED INFORMATION

Posted by Scott Weber <sc...@sbcglobal.net>.
Ah.  Now we have something.

It was really easy to change the PHP script and re-run the batch file.  Over and over.  So I have a bunch of tests.

When the script was modified to use only the names "to" and "from"  It worked fast... Really fast.  But any combination of the "localhost" was very long.

  "source" : "http://localhost:5984/from"
  "target" : "http://localhost:5984/to"
60 seconds


  "source" : "http://localhost:5984/from"
  "target" : "to"
60 seconds


  "source" : "from"
  "target" : "http://localhost:5984/to"
40 seconds 


  "source" : "from"
  "target" : "to"
2 seconds


Replacing "localhost" with 127.0.0.1 cut about 10 seconds off.

  "source" : "http://127.0.0.1:5984/from"
  "target" : "http://127.0.0.1:5984/to"
60 seconds  (well, it didn't cut any time off this one)


  "source" : "http://127.0.0.1:5984/from"
  "target" : "to"
40 seconds


  "source" : "from"
  "target" : "http://127.0.0.1:5984/to"
30 seconds  


And lastly:  "source" : "http://localhost:5984/from"
  "target" : "http://127.0.0.1:5984/to"
60 seconds

So localhost is basically the same as 127.0.0.1.  
And any permutation of using the url causes delays.

Sounds like it should fall under "also fun".

Thanks so far. It appears this may be solvable.

-Scott



----- Original Message -----
From: Paul Davis <pa...@gmail.com>
To: "user@couchdb.apache.org" <us...@couchdb.apache.org>; Scott Weber <sc...@sbcglobal.net>
Cc: "replication@couchdb.apache.org" <re...@couchdb.apache.org>
Sent: Friday, January 24, 2014 2:25 PM
Subject: Re: Replication of attachment is extremely slow.. LOGGED INFORMATION

The important thing to note here is that test 1 is using URLs for
databases where tests 2 and 3 are using internal replication. Reading
the logs it shows that the request to write the attachment took about
72 seconds. Out of curiosity could you rerun test 3 twice more with
the following JSON bodies:

{"from":"http://localhost:5984/from", "to":"to"}
{"from":"from", "to":"http://localhost:5984/to"}

This should narrow down if there's a problem with reading attachments,
writing attachments, or some weird interplay between reading and
writing attachments.

If it turns out that the only slow version is when both are using the
"http://localhost:5984/dbname" versions then can you run one more
test:

{"from":"http://127.0.0.1:5984/from", "to":"http://localhost:5984/to"}

If that's also slow then we probably have a weird problem with the
multipart code (fun!). If its not slow then most likely this is a bug
in the HTTP worker pool implementation (also fun!).


Re: Replication of attachment is extremely slow.. LOGGED INFORMATION

Posted by Paul Davis <pa...@gmail.com>.
The important thing to note here is that test 1 is using URLs for
databases where tests 2 and 3 are using internal replication. Reading
the logs it shows that the request to write the attachment took about
72 seconds. Out of curiosity could you rerun test 3 twice more with
the following JSON bodies:

{"from":"http://localhost:5984/from", "to":"to"}
{"from":"from", "to":"http://localhost:5984/to"}

This should narrow down if there's a problem with reading attachments,
writing attachments, or some weird interplay between reading and
writing attachments.

If it turns out that the only slow version is when both are using the
"http://localhost:5984/dbname" versions then can you run one more
test:

{"from":"http://127.0.0.1:5984/from", "to":"http://localhost:5984/to"}

If that's also slow then we probably have a weird problem with the
multipart code (fun!). If its not slow then most likely this is a bug
in the HTTP worker pool implementation (also fun!).

Re: Replication of attachment is extremely slow.. LOGGED INFORMATION

Posted by "matt j. sorenson" <ma...@sorensonbros.net>.
rfc1855 probably doesn't mention it, but links out to gist.github.com (or
any other pastebin-like service) is handy for log sharing, stack traces and
such, since attachments and inline dumps can be difficult, impossible, or
just cumbersome.

#TOPPOST because [Message clipped] :P

P.s. love seeing how helpful this community is!

--Matt


On Fri, Jan 24, 2014 at 1:41 PM, Scott Weber <sc...@sbcglobal.net>wrote:

> I do not see the log attached. It must have been stripped by the list
> server.
> I will copy/paste it to the bottom of this email.  It is 1024 lines.
>
>
>
>
> ----- Original Message -----
> From: Scott Weber <sc...@sbcglobal.net>
> To: "user@couchdb.apache.org" <us...@couchdb.apache.org>
> Cc: "replication@couchdb.apache.org" <re...@couchdb.apache.org>
> Sent: Friday, January 24, 2014 1:34 PM
> Subject: Re: Replication of attachment is extremely slow.. LOGGED
> INFORMATION
>
> We have a duplication of the problem from a cleaned installation.  And
> there are some interesting things in the log, but I don't know what they
> mean, since I am not familiar with the internals of CouchDB.
>
> I have attached the couch log. I can send the actual file being
> replicated, but it is about 4Meg.  Too big to make a reasonable
> attachment.  And I don't think it will be of value to this issue.
>
> As to the log, it is broken in three sections (tests), which I will
> outline:
> In all cases, it first deletes all databases, then creates them, and adds
> a doc and attachment.
> <1>
> The first is where replication was requested via a script HTTP post.
> The attachment is uploaded at line 36 - content length 4185522 bytes
> The "_replicate" request is PUT at line 49.
> Then a bunch of "Minor error in HTTP request" messages appear.  Not sure
> what that means.
> Then starting at line 328 to 329, you can see 5 second gaps as it tries to
> "GET" from the "from" database
> and a bunch of "New task status" messages are repeated (about 15 of them).
> This repeats, showing 5 second pauses until line 740, where it says "POST
> /to/_ensure_full_commit 201"
> TOTAL TIME:  16:03:03 to 16:04:16   One minute, thirteen seconds.
>
> <2>
> The next test was done using CURL, starting at line 770, it deletes the
> databases, and starts over.
> At line 818, there is the PUT request to the _replicator db  (NOTE: This
> is "_replicator", not "_replicate", what is the difference?)
> There are only 2 "new task status" messages, and the replication is done
> by at line 911
> TOTAL TIME:  16:17:28 to 16:17:30   2 seconds.
>
> <3>
> The next test was done using curl as well. It is a repeat of the second
> test, except the replication request was PUT to "_replicate" rather than
> "_replicator", just like the first test.
> It starts at line 912, and looks to be identical to everything in test 2.
> It took two seconds, there were only 2 "New task status" messages again.
>
> So, the only difference we see is the script used a header that has a
> different user-agent (and had a few other minor differences), and posts a
> replication request JSON which is this:
>    {"_id" : "test",
>     "source" : "http://localhost:5984/from",
>     "target" : "http://localhost:5984/to",
>     "create_target" : false,
>     "continuous" : false }
>
> Which is slightly more comprehensive than the CURL JSON which is just this:
>      {"source":"from","target":"to"}
>
> But these differences should not cause the replication to be 30 times
> longer, should they?
>
> Any other ideas why one form of replication takes so much longer?
>
> -Scott
>
> -----------------PASTE-----------------------------------------
> [Fri, 24 Jan 2014 16:02:43 GMT] [info] [<0.35.0>] Apache CouchDB has
> started on http://0.0.0.0:5984/
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.122.0>] 'DELETE' /from {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"*/*"},
>           {'Authorization',"Basic YWRtaW46YWRtaW4="},
>           {'Host',"127.0.0.1:5984"},
>           {'User-Agent',"curl/7.31.0"}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.122.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.122.0>] 127.0.0.1 - - DELETE
> /from 200
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.173.0>] 'DELETE' /to {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"*/*"},
>           {'Authorization',"Basic YWRtaW46YWRtaW4="},
>           {'Host',"127.0.0.1:5984"},
>           {'User-Agent',"curl/7.31.0"}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.173.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.173.0>] 127.0.0.1 - - DELETE
> /to 200
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.125.0>] 'PUT' /from {1,1} from
> "127.0.0.1"
> Headers: [{'Accept',"*/*"},
>           {'Authorization',"Basic YWRtaW46YWRtaW4="},
>           {'Host',"127.0.0.1:5984"},
>           {'User-Agent',"curl/7.31.0"}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.125.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.125.0>] 127.0.0.1 - - PUT /from
> 201
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.124.0>] 'PUT' /to {1,1} from
> "127.0.0.1"
> Headers: [{'Accept',"*/*"},
>           {'Authorization',"Basic YWRtaW46YWRtaW4="},
>           {'Host',"127.0.0.1:5984"},
>           {'User-Agent',"curl/7.31.0"}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.124.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.124.0>] 127.0.0.1 - - PUT /to
> 201
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.126.0>] 'PUT' /from/test {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"*/*"},
>           {'Authorization',"Basic YWRtaW46YWRtaW4="},
>           {'Content-Length',"16"},
>           {'Content-Type',"application/x-www-form-urlencoded"},
>           {'Host',"127.0.0.1:5984"},
>           {'User-Agent',"curl/7.31.0"}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.126.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.126.0>] 127.0.0.1 - - PUT
> /from/test 201
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.127.0>] 'PUT'
> /from/test/x937?rev=1-23a888c74ba58fe20dc0d424133750bb {1,
>
> 1} from "127.0.0.1"
> Headers: [{'Accept',"*/*"},
>           {'Content-Length',"4185522"},
>           {'Content-Type',"application/octet-stream"},
>           {"Expect","100-continue"},
>           {'Host',"127.0.0.1:5984"},
>           {'User-Agent',"curl/7.31.0"}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.127.0>] OAuth Params: [{"rev",
>                                     "1-23a888c74ba58fe20dc0d424133750bb"}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.127.0>] 127.0.0.1 - - PUT
> /from/test/x937?rev=1-23a888c74ba58fe20dc0d424133750bb 201
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.114.0>] 'POST' /_replicate
> {1,0} from "127.0.0.1"
> Headers: [{'Authorization',"Basic cmlhbjpwYXNzd29yZA=="},
>           {'Content-Length',"135"},
>           {'Content-Type',"application/json"},
>           {'Host',"127.0.0.1"}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.114.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] 'HEAD' /from/ {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.115.0>] 127.0.0.1 - - HEAD
> /from/ 200
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] 'HEAD' /to/ {1,1} from
> "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.117.0>] 127.0.0.1 - - HEAD /to/
> 200
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] 'GET' /from/ {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.115.0>] 127.0.0.1 - - GET
> /from/ 200
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] 'GET' /to/ {1,1} from
> "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.117.0>] 127.0.0.1 - - GET /to/
> 200
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] 'GET'
> /from/_local/34754f379443f9584e7595cc8de826ff {1,1} from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] Minor error in HTTP
> request: {not_found,missing}
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] Stacktrace:
> [{couch_httpd_db,couch_doc_open,4,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
>                                    {line,806}]},
>                                  {couch_httpd_db,db_doc_req,3,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
>                                    {line,498}]},
>                                  {couch_httpd_db,do_db_req,2,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
>                                    {line,234}]},
>                                  {couch_httpd,handle_request_int,5,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd.erl"},
>                                    {line,332}]},
>                                  {mochiweb_http,headers,5,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/mochiweb/mochiweb_http.erl"},
>                                    {line,94}]},
>                                  {proc_lib,init_p_do_apply,3,
>                                   [{file,"proc_lib.erl"},{line,239}]}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.115.0>] 127.0.0.1 - - GET
> /from/_local/34754f379443f9584e7595cc8de826ff 404
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] httpd 404 error
> response:
>  {"error":"not_found","reason":"missing"}
>
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] 'GET'
> /from/_local/b035f0fbb5d2d5e1afac34f3708e844e {1,1} from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] Minor error in HTTP
> request: {not_found,missing}
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] Stacktrace:
> [{couch_httpd_db,couch_doc_open,4,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
>                                    {line,806}]},
>                                  {couch_httpd_db,db_doc_req,3,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
>                                    {line,498}]},
>                                  {couch_httpd_db,do_db_req,2,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
>                                    {line,234}]},
>                                  {couch_httpd,handle_request_int,5,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd.erl"},
>                                    {line,332}]},
>                                  {mochiweb_http,headers,5,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/mochiweb/mochiweb_http.erl"},
>                                    {line,94}]},
>                                  {proc_lib,init_p_do_apply,3,
>                                   [{file,"proc_lib.erl"},{line,239}]}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.115.0>] 127.0.0.1 - - GET
> /from/_local/b035f0fbb5d2d5e1afac34f3708e844e 404
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] httpd 404 error
> response:
>  {"error":"not_found","reason":"missing"}
>
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] 'GET'
> /from/_local/829e755391ecedb3c3db2f24421f3bcb {1,1} from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] Minor error in HTTP
> request: {not_found,missing}
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] Stacktrace:
> [{couch_httpd_db,couch_doc_open,4,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
>                                    {line,806}]},
>                                  {couch_httpd_db,db_doc_req,3,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
>                                    {line,498}]},
>                                  {couch_httpd_db,do_db_req,2,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
>                                    {line,234}]},
>                                  {couch_httpd,handle_request_int,5,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd.erl"},
>                                    {line,332}]},
>                                  {mochiweb_http,headers,5,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/mochiweb/mochiweb_http.erl"},
>                                    {line,94}]},
>                                  {proc_lib,init_p_do_apply,3,
>                                   [{file,"proc_lib.erl"},{line,239}]}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.115.0>] 127.0.0.1 - - GET
> /from/_local/829e755391ecedb3c3db2f24421f3bcb 404
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] httpd 404 error
> response:
>  {"error":"not_found","reason":"missing"}
>
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] 'GET'
> /to/_local/34754f379443f9584e7595cc8de826ff {1,1} from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] Minor error in HTTP
> request: {not_found,missing}
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] Stacktrace:
> [{couch_httpd_db,couch_doc_open,4,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
>                                    {line,806}]},
>                                  {couch_httpd_db,db_doc_req,3,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
>                                    {line,498}]},
>                                  {couch_httpd_db,do_db_req,2,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
>                                    {line,234}]},
>                                  {couch_httpd,handle_request_int,5,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd.erl"},
>                                    {line,332}]},
>                                  {mochiweb_http,headers,5,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/mochiweb/mochiweb_http.erl"},
>                                    {line,94}]},
>                                  {proc_lib,init_p_do_apply,3,
>                                   [{file,"proc_lib.erl"},{line,239}]}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.117.0>] 127.0.0.1 - - GET
> /to/_local/34754f379443f9584e7595cc8de826ff 404
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] httpd 404 error
> response:
>  {"error":"not_found","reason":"missing"}
>
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] 'GET'
> /to/_local/b035f0fbb5d2d5e1afac34f3708e844e {1,1} from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] Minor error in HTTP
> request: {not_found,missing}
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] Stacktrace:
> [{couch_httpd_db,couch_doc_open,4,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
>                                    {line,806}]},
>                                  {couch_httpd_db,db_doc_req,3,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
>                                    {line,498}]},
>                                  {couch_httpd_db,do_db_req,2,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
>                                    {line,234}]},
>                                  {couch_httpd,handle_request_int,5,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd.erl"},
>                                    {line,332}]},
>                                  {mochiweb_http,headers,5,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/mochiweb/mochiweb_http.erl"},
>                                    {line,94}]},
>                                  {proc_lib,init_p_do_apply,3,
>                                   [{file,"proc_lib.erl"},{line,239}]}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.117.0>] 127.0.0.1 - - GET
> /to/_local/b035f0fbb5d2d5e1afac34f3708e844e 404
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] httpd 404 error
> response:
>  {"error":"not_found","reason":"missing"}
>
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] 'GET'
> /to/_local/829e755391ecedb3c3db2f24421f3bcb {1,1} from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] Minor error in HTTP
> request: {not_found,missing}
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] Stacktrace:
> [{couch_httpd_db,couch_doc_open,4,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
>                                    {line,806}]},
>                                  {couch_httpd_db,db_doc_req,3,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
>                                    {line,498}]},
>                                  {couch_httpd_db,do_db_req,2,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
>                                    {line,234}]},
>                                  {couch_httpd,handle_request_int,5,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd.erl"},
>                                    {line,332}]},
>                                  {mochiweb_http,headers,5,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/mochiweb/mochiweb_http.erl"},
>                                    {line,94}]},
>                                  {proc_lib,init_p_do_apply,3,
>                                   [{file,"proc_lib.erl"},{line,239}]}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.117.0>] 127.0.0.1 - - GET
> /to/_local/829e755391ecedb3c3db2f24421f3bcb 404
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] httpd 404 error
> response:
>  {"error":"not_found","reason":"missing"}
>
> [Fri, 24 Jan 2014 16:03:04 GMT] [debug] [<0.119.0>] 'GET'
> /from/_changes?feed=normal&style=all_docs&since=0&heartbeat=10000 {1,
>
> 1} from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:04 GMT] [debug] [<0.119.0>] OAuth Params:
> [{"feed","normal"},
>                                    {"style","all_docs"},
>                                    {"since","0"},
>                                    {"heartbeat","10000"}]
> [Fri, 24 Jan 2014 16:03:04 GMT] [info] [<0.119.0>] 127.0.0.1 - - GET
> /from/_changes?feed=normal&style=all_docs&since=0&heartbeat=10000 200
> [Fri, 24 Jan 2014 16:03:04 GMT] [info] [<0.203.0>] Replication
> `"34754f379443f9584e7595cc8de826ff"` is using:
>     4 worker processes
>     a worker batch size of 500
>     20 HTTP connections
>     a connection timeout of 30000 milliseconds
>     10 retries per request
>     socket options are: [{keepalive,true},{nodelay,false}]
> [Fri, 24 Jan 2014 16:03:04 GMT] [debug] [<0.203.0>] Worker pids are:
> [<0.217.0>,<0.219.0>,<0.221.0>,<0.223.0>]
> [Fri, 24 Jan 2014 16:03:04 GMT] [info] [<0.114.0>] starting new
> replication `34754f379443f9584e7595cc8de826ff` at <0.203.0> (`
> http://localhost:5984/from/` -> `http://localhost:5984/to/`)
> [Fri, 24 Jan 2014 16:03:04 GMT] [debug] [<0.117.0>] 'POST' /to/_revs_diff
> {1,1} from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"47"},
>           {'Content-Type',"application/json"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:04 GMT] [debug] [<0.117.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:04 GMT] [info] [<0.117.0>] 127.0.0.1 - - POST
> /to/_revs_diff 200
> [Fri, 24 Jan 2014 16:03:04 GMT] [debug] [<0.115.0>] 'GET'
> /from/test?revs=true&open_revs=%5B%222-d598f71bc82752ec68c68645c2bd46d5%22%5D&latest=true
> {1,
>
> 1} from "127.0.0.1"
> Headers: [{'Accept',"multipart/mixed"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:04 GMT] [debug] [<0.115.0>] OAuth Params:
> [{"revs","true"},
>                                    {"open_revs",
>
> "[\"2-d598f71bc82752ec68c68645c2bd46d5\"]"},
>                                    {"latest","true"}]
> [Fri, 24 Jan 2014 16:03:04 GMT] [info] [<0.115.0>] 127.0.0.1 - - GET
> /from/test?revs=true&open_revs=%5B%222-d598f71bc82752ec68c68645c2bd46d5%22%5D&latest=true
> 200
> [Fri, 24 Jan 2014 16:03:04 GMT] [debug] [<0.230.0>] Worker flushing doc
> with attachments
> [Fri, 24 Jan 2014 16:03:04 GMT] [debug] [<0.117.0>] 'PUT'
> /to/test?new_edits=false {1,1} from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"4186112"},
>           {'Content-Type',"multipart/related;
> boundary=\"49aeafb3545e308aef185b0c610bd9f0\""},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:04 GMT] [debug] [<0.117.0>] OAuth Params:
> [{"new_edits","false"}]
> [Fri, 24 Jan 2014 16:03:09 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:09 GMT] [debug] [<0.121.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:09 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET
> /from/ 200
> [Fri, 24 Jan 2014 16:03:09 GMT] [debug] [<0.93.0>] New task status for
> <0.203.0>: [{checkpointed_source_seq,0},
>                                                    {continuous,false},
>                                                    {doc_id,<<"test">>},
>                                                    {doc_write_failures,0},
>                                                    {docs_read,0},
>                                                    {docs_written,0},
>
> {missing_revisions_found,0},
>                                                    {progress,0},
>                                                    {replication_id,
>
> <<"34754f379443f9584e7595cc8de826ff">>},
>                                                    {revisions_checked,0},
>                                                    {source,
>                                                     <<"
> http://localhost:5984/from/">>},
>                                                    {source_seq,2},
>                                                    {started_on,1390579384},
>                                                    {target,
>                                                     <<"
> http://localhost:5984/to/">>},
>                                                    {type,replication},
>                                                    {updated_on,1390579389}]
> [Fri, 24 Jan 2014 16:03:14 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:14 GMT] [debug] [<0.121.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:14 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET
> /from/ 200
> [Fri, 24 Jan 2014 16:03:14 GMT] [debug] [<0.93.0>] New task status for
> <0.203.0>: [{checkpointed_source_seq,0},
>                                                    {continuous,false},
>                                                    {doc_id,<<"test">>},
>                                                    {doc_write_failures,0},
>                                                    {docs_read,0},
>                                                    {docs_written,0},
>
> {missing_revisions_found,0},
>                                                    {progress,0},
>                                                    {replication_id,
>
> <<"34754f379443f9584e7595cc8de826ff">>},
>                                                    {revisions_checked,0},
>                                                    {source,
>                                                     <<"
> http://localhost:5984/from/">>},
>                                                    {source_seq,2},
>                                                    {started_on,1390579384},
>                                                    {target,
>                                                     <<"
> http://localhost:5984/to/">>},
>                                                    {type,replication},
>                                                    {updated_on,1390579394}]
> [Fri, 24 Jan 2014 16:03:19 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:19 GMT] [debug] [<0.121.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:19 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET
> /from/ 200
> [Fri, 24 Jan 2014 16:03:19 GMT] [debug] [<0.93.0>] New task status for
> <0.203.0>: [{checkpointed_source_seq,0},
>                                                    {continuous,false},
>                                                    {doc_id,<<"test">>},
>                                                    {doc_write_failures,0},
>                                                    {docs_read,0},
>                                                    {docs_written,0},
>
> {missing_revisions_found,0},
>                                                    {progress,0},
>                                                    {replication_id,
>
> <<"34754f379443f9584e7595cc8de826ff">>},
>                                                    {revisions_checked,0},
>                                                    {source,
>                                                     <<"
> http://localhost:5984/from/">>},
>                                                    {source_seq,2},
>                                                    {started_on,1390579384},
>                                                    {target,
>                                                     <<"
> http://localhost:5984/to/">>},
>                                                    {type,replication},
>                                                    {updated_on,1390579399}]
> [Fri, 24 Jan 2014 16:03:24 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:24 GMT] [debug] [<0.121.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:24 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET
> /from/ 200
> [Fri, 24 Jan 2014 16:03:24 GMT] [debug] [<0.93.0>] New task status for
> <0.203.0>: [{checkpointed_source_seq,0},
>                                                    {continuous,false},
>                                                    {doc_id,<<"test">>},
>                                                    {doc_write_failures,0},
>                                                    {docs_read,0},
>                                                    {docs_written,0},
>
> {missing_revisions_found,0},
>                                                    {progress,0},
>                                                    {replication_id,
>
> <<"34754f379443f9584e7595cc8de826ff">>},
>                                                    {revisions_checked,0},
>                                                    {source,
>                                                     <<"
> http://localhost:5984/from/">>},
>                                                    {source_seq,2},
>                                                    {started_on,1390579384},
>                                                    {target,
>                                                     <<"
> http://localhost:5984/to/">>},
>                                                    {type,replication},
>                                                    {updated_on,1390579404}]
> [Fri, 24 Jan 2014 16:03:29 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:29 GMT] [debug] [<0.121.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:29 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET
> /from/ 200
> [Fri, 24 Jan 2014 16:03:29 GMT] [debug] [<0.93.0>] New task status for
> <0.203.0>: [{checkpointed_source_seq,0},
>                                                    {continuous,false},
>                                                    {doc_id,<<"test">>},
>                                                    {doc_write_failures,0},
>                                                    {docs_read,0},
>                                                    {docs_written,0},
>
> {missing_revisions_found,0},
>                                                    {progress,0},
>                                                    {replication_id,
>
> <<"34754f379443f9584e7595cc8de826ff">>},
>                                                    {revisions_checked,0},
>                                                    {source,
>                                                     <<"
> http://localhost:5984/from/">>},
>                                                    {source_seq,2},
>                                                    {started_on,1390579384},
>                                                    {target,
>                                                     <<"
> http://localhost:5984/to/">>},
>                                                    {type,replication},
>                                                    {updated_on,1390579409}]
> [Fri, 24 Jan 2014 16:03:34 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:34 GMT] [debug] [<0.121.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:34 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET
> /from/ 200
> [Fri, 24 Jan 2014 16:03:34 GMT] [debug] [<0.93.0>] New task status for
> <0.203.0>: [{checkpointed_source_seq,0},
>                                                    {continuous,false},
>                                                    {doc_id,<<"test">>},
>                                                    {doc_write_failures,0},
>                                                    {docs_read,0},
>                                                    {docs_written,0},
>
> {missing_revisions_found,0},
>                                                    {progress,0},
>                                                    {replication_id,
>
> <<"34754f379443f9584e7595cc8de826ff">>},
>                                                    {revisions_checked,0},
>                                                    {source,
>                                                     <<"
> http://localhost:5984/from/">>},
>                                                    {source_seq,2},
>                                                    {started_on,1390579384},
>                                                    {target,
>                                                     <<"
> http://localhost:5984/to/">>},
>                                                    {type,replication},
>                                                    {updated_on,1390579414}]
> [Fri, 24 Jan 2014 16:03:39 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:39 GMT] [debug] [<0.121.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:39 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET
> /from/ 200
> [Fri, 24 Jan 2014 16:03:39 GMT] [debug] [<0.93.0>] New task status for
> <0.203.0>: [{checkpointed_source_seq,0},
>                                                    {continuous,false},
>                                                    {doc_id,<<"test">>},
>                                                    {doc_write_failures,0},
>                                                    {docs_read,0},
>                                                    {docs_written,0},
>
> {missing_revisions_found,0},
>                                                    {progress,0},
>                                                    {replication_id,
>
> <<"34754f379443f9584e7595cc8de826ff">>},
>                                                    {revisions_checked,0},
>                                                    {source,
>                                                     <<"
> http://localhost:5984/from/">>},
>                                                    {source_seq,2},
>                                                    {started_on,1390579384},
>                                                    {target,
>                                                     <<"
> http://localhost:5984/to/">>},
>                                                    {type,replication},
>                                                    {updated_on,1390579419}]
> [Fri, 24 Jan 2014 16:03:44 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:44 GMT] [debug] [<0.121.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:44 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET
> /from/ 200
> [Fri, 24 Jan 2014 16:03:44 GMT] [debug] [<0.93.0>] New task status for
> <0.203.0>: [{checkpointed_source_seq,0},
>                                                    {continuous,false},
>                                                    {doc_id,<<"test">>},
>                                                    {doc_write_failures,0},
>                                                    {docs_read,0},
>                                                    {docs_written,0},
>
> {missing_revisions_found,0},
>                                                    {progress,0},
>                                                    {replication_id,
>
> <<"34754f379443f9584e7595cc8de826ff">>},
>                                                    {revisions_checked,0},
>                                                    {source,
>                                                     <<"
> http://localhost:5984/from/">>},
>                                                    {source_seq,2},
>                                                    {started_on,1390579384},
>                                                    {target,
>                                                     <<"
> http://localhost:5984/to/">>},
>                                                    {type,replication},
>                                                    {updated_on,1390579424}]
> [Fri, 24 Jan 2014 16:03:49 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:49 GMT] [debug] [<0.121.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:49 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET
> /from/ 200
> [Fri, 24 Jan 2014 16:03:49 GMT] [debug] [<0.93.0>] New task status for
> <0.203.0>: [{checkpointed_source_seq,0},
>                                                    {continuous,false},
>                                                    {doc_id,<<"test">>},
>                                                    {doc_write_failures,0},
>                                                    {docs_read,0},
>                                                    {docs_written,0},
>
> {missing_revisions_found,0},
>                                                    {progress,0},
>                                                    {replication_id,
>
> <<"34754f379443f9584e7595cc8de826ff">>},
>                                                    {revisions_checked,0},
>                                                    {source,
>                                                     <<"
> http://localhost:5984/from/">>},
>                                                    {source_seq,2},
>                                                    {started_on,1390579384},
>                                                    {target,
>                                                     <<"
> http://localhost:5984/to/">>},
>                                                    {type,replication},
>                                                    {updated_on,1390579429}]
> [Fri, 24 Jan 2014 16:03:54 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:54 GMT] [debug] [<0.121.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:54 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET
> /from/ 200
> [Fri, 24 Jan 2014 16:03:54 GMT] [debug] [<0.93.0>] New task status for
> <0.203.0>: [{checkpointed_source_seq,0},
>                                                    {continuous,false},
>                                                    {doc_id,<<"test">>},
>                                                    {doc_write_failures,0},
>                                                    {docs_read,0},
>                                                    {docs_written,0},
>
> {missing_revisions_found,0},
>                                                    {progress,0},
>                                                    {replication_id,
>
> <<"34754f379443f9584e7595cc8de826ff">>},
>                                                    {revisions_checked,0},
>                                                    {source,
>                                                     <<"
> http://localhost:5984/from/">>},
>                                                    {source_seq,2},
>                                                    {started_on,1390579384},
>                                                    {target,
>                                                     <<"
> http://localhost:5984/to/">>},
>                                                    {type,replication},
>                                                    {updated_on,1390579434}]
> [Fri, 24 Jan 2014 16:03:59 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:59 GMT] [debug] [<0.121.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:59 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET
> /from/ 200
> [Fri, 24 Jan 2014 16:03:59 GMT] [debug] [<0.93.0>] New task status for
> <0.203.0>: [{checkpointed_source_seq,0},
>                                                    {continuous,false},
>                                                    {doc_id,<<"test">>},
>                                                    {doc_write_failures,0},
>                                                    {docs_read,0},
>                                                    {docs_written,0},
>
> {missing_revisions_found,0},
>                                                    {progress,0},
>                                                    {replication_id,
>
> <<"34754f379443f9584e7595cc8de826ff">>},
>                                                    {revisions_checked,0},
>                                                    {source,
>                                                     <<"
> http://localhost:5984/from/">>},
>                                                    {source_seq,2},
>                                                    {started_on,1390579384},
>                                                    {target,
>                                                     <<"
> http://localhost:5984/to/">>},
>                                                    {type,replication},
>                                                    {updated_on,1390579439}]
> [Fri, 24 Jan 2014 16:04:04 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:04:04 GMT] [debug] [<0.121.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:04:04 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET
> /from/ 200
> [Fri, 24 Jan 2014 16:04:04 GMT] [debug] [<0.93.0>] New task status for
> <0.203.0>: [{checkpointed_source_seq,0},
>                                                    {continuous,false},
>                                                    {doc_id,<<"test">>},
>                                                    {doc_write_failures,0},
>                                                    {docs_read,0},
>                                                    {docs_written,0},
>
> {missing_revisions_found,0},
>                                                    {progress,0},
>                                                    {replication_id,
>
> <<"34754f379443f9584e7595cc8de826ff">>},
>                                                    {revisions_checked,0},
>                                                    {source,
>                                                     <<"
> http://localhost:5984/from/">>},
>                                                    {source_seq,2},
>                                                    {started_on,1390579384},
>                                                    {target,
>                                                     <<"
> http://localhost:5984/to/">>},
>                                                    {type,replication},
>                                                    {updated_on,1390579444}]
> [Fri, 24 Jan 2014 16:04:09 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:04:09 GMT] [debug] [<0.121.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:04:09 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET
> /from/ 200
> [Fri, 24 Jan 2014 16:04:09 GMT] [debug] [<0.93.0>] New task status for
> <0.203.0>: [{checkpointed_source_seq,0},
>                                                    {continuous,false},
>                                                    {doc_id,<<"test">>},
>                                                    {doc_write_failures,0},
>                                                    {docs_read,0},
>                                                    {docs_written,0},
>
> {missing_revisions_found,0},
>                                                    {progress,0},
>                                                    {replication_id,
>
> <<"34754f379443f9584e7595cc8de826ff">>},
>                                                    {revisions_checked,0},
>                                                    {source,
>                                                     <<"
> http://localhost:5984/from/">>},
>                                                    {source_seq,2},
>                                                    {started_on,1390579384},
>                                                    {target,
>                                                     <<"
> http://localhost:5984/to/">>},
>                                                    {type,replication},
>                                                    {updated_on,1390579449}]
> [Fri, 24 Jan 2014 16:04:14 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:04:14 GMT] [debug] [<0.121.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:04:14 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET
> /from/ 200
> [Fri, 24 Jan 2014 16:04:14 GMT] [debug] [<0.93.0>] New task status for
> <0.203.0>: [{checkpointed_source_seq,0},
>                                                    {continuous,false},
>                                                    {doc_id,<<"test">>},
>                                                    {doc_write_failures,0},
>                                                    {docs_read,0},
>                                                    {docs_written,0},
>
> {missing_revisions_found,0},
>                                                    {progress,0},
>                                                    {replication_id,
>
> <<"34754f379443f9584e7595cc8de826ff">>},
>                                                    {revisions_checked,0},
>                                                    {source,
>                                                     <<"
> http://localhost:5984/from/">>},
>                                                    {source_seq,2},
>                                                    {started_on,1390579384},
>                                                    {target,
>                                                     <<"
> http://localhost:5984/to/">>},
>                                                    {type,replication},
>                                                    {updated_on,1390579454}]
> [Fri, 24 Jan 2014 16:04:16 GMT] [info] [<0.117.0>] 127.0.0.1 - - PUT
> /to/test?new_edits=false 201
> [Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.218.0>] Worker reported
> completion of seq {1,2}
> [Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.203.0>] Worker reported seq
> {1,2}, through seq was {0,0}, new through seq is {1,
>
> 2}, highest seq done was {0,
>
> 0}, new highest seq done is {1,
>
> 2}
> Seqs in progress were: [{1,2}]
> Seqs in progress are now: []
> [Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.121.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:04:16 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET
> /from/ 200
> [Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.93.0>] New task status for
> <0.203.0>: [{checkpointed_source_seq,0},
>                                                    {continuous,false},
>                                                    {doc_id,<<"test">>},
>                                                    {doc_write_failures,0},
>                                                    {docs_read,1},
>                                                    {docs_written,1},
>
> {missing_revisions_found,1},
>                                                    {progress,100},
>                                                    {replication_id,
>
> <<"34754f379443f9584e7595cc8de826ff">>},
>                                                    {revisions_checked,1},
>                                                    {source,
>                                                     <<"
> http://localhost:5984/from/">>},
>                                                    {source_seq,2},
>                                                    {started_on,1390579384},
>                                                    {target,
>                                                     <<"
> http://localhost:5984/to/">>},
>                                                    {type,replication},
>                                                    {updated_on,1390579456}]
> [Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.121.0>] 'POST'
> /from/_ensure_full_commit {1,1} from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Content-Type',"application/json"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.117.0>] 'POST'
> /to/_ensure_full_commit {1,1} from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Content-Type',"application/json"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.121.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.117.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:04:16 GMT] [info] [<0.121.0>] 127.0.0.1 - - POST
> /from/_ensure_full_commit 201
> [Fri, 24 Jan 2014 16:04:16 GMT] [info] [<0.117.0>] 127.0.0.1 - - POST
> /to/_ensure_full_commit 201
> [Fri, 24 Jan 2014 16:04:16 GMT] [info] [<0.203.0>] recording a checkpoint
> for `http://localhost:5984/from/` -> `http://localhost:5984/to/` at
> source update_seq 2
> [Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.121.0>] 'PUT'
> /from/_local/34754f379443f9584e7595cc8de826ff {1,1} from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"473"},
>           {'Content-Type',"application/json"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"},
>           {"X-Couch-Full-Commit","false"}]
> [Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.121.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:04:16 GMT] [info] [<0.121.0>] 127.0.0.1 - - PUT
> /from/_local/34754f379443f9584e7595cc8de826ff 201
> [Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.117.0>] 'PUT'
> /to/_local/34754f379443f9584e7595cc8de826ff {1,1} from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"473"},
>           {'Content-Type',"application/json"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"},
>           {"X-Couch-Full-Commit","false"}]
> [Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.117.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:04:16 GMT] [info] [<0.117.0>] 127.0.0.1 - - PUT
> /to/_local/34754f379443f9584e7595cc8de826ff 201
> [Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.121.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:04:16 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET
> /from/ 200
> [Fri, 24 Jan 2014 16:04:16 GMT] [info] [<0.114.0>] 127.0.0.1 - - POST
> /_replicate 200
> [Fri, 24 Jan 2014 16:17:27 GMT] [debug] [<0.241.0>] 'DELETE' /from {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"*/*"},
>           {'Authorization',"Basic YWRtaW46YWRtaW4="},
>           {'Host',"127.0.0.1:5984"},
>           {'User-Agent',"curl/7.31.0"}]
> [Fri, 24 Jan 2014 16:17:27 GMT] [debug] [<0.241.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:17:27 GMT] [info] [<0.241.0>] 127.0.0.1 - - DELETE
> /from 200
> [Fri, 24 Jan 2014 16:17:27 GMT] [debug] [<0.120.0>] 'DELETE' /to {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"*/*"},
>           {'Authorization',"Basic YWRtaW46YWRtaW4="},
>           {'Host',"127.0.0.1:5984"},
>           {'User-Agent',"curl/7.31.0"}]
> [Fri, 24 Jan 2014 16:17:27 GMT] [debug] [<0.120.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:17:27 GMT] [info] [<0.120.0>] 127.0.0.1 - - DELETE
> /to 200
> [Fri, 24 Jan 2014 16:17:27 GMT] [debug] [<0.118.0>] 'PUT' /from {1,1} from
> "127.0.0.1"
> Headers: [{'Accept',"*/*"},
>           {'Authorization',"Basic YWRtaW46YWRtaW4="},
>           {'Host',"127.0.0.1:5984"},
>           {'User-Agent',"curl/7.31.0"}]
> [Fri, 24 Jan 2014 16:17:27 GMT] [debug] [<0.118.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:17:27 GMT] [info] [<0.118.0>] 127.0.0.1 - - PUT /from
> 201
> [Fri, 24 Jan 2014 16:17:27 GMT] [debug] [<0.116.0>] 'PUT' /to {1,1} from
> "127.0.0.1"
> Headers: [{'Accept',"*/*"},
>           {'Authorization',"Basic YWRtaW46YWRtaW4="},
>           {'Host',"127.0.0.1:5984"},
>           {'User-Agent',"curl/7.31.0"}]
> [Fri, 24 Jan 2014 16:17:27 GMT] [debug] [<0.116.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:17:27 GMT] [info] [<0.116.0>] 127.0.0.1 - - PUT /to
> 201
> [Fri, 24 Jan 2014 16:17:27 GMT] [debug] [<0.113.0>] 'PUT' /from/test {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"*/*"},
>           {'Authorization',"Basic YWRtaW46YWRtaW4="},
>           {'Content-Length',"16"},
>           {'Content-Type',"application/x-www-form-urlencoded"},
>           {'Host',"127.0.0.1:5984"},
>           {'User-Agent',"curl/7.31.0"}]
> [Fri, 24 Jan 2014 16:17:27 GMT] [debug] [<0.113.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:17:27 GMT] [info] [<0.113.0>] 127.0.0.1 - - PUT
> /from/test 201
> [Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.112.0>] 'PUT'
> /from/test/x937?rev=1-23a888c74ba58fe20dc0d424133750bb {1,
>
> 1} from "127.0.0.1"
> Headers: [{'Accept',"*/*"},
>           {'Content-Length',"4185522"},
>           {'Content-Type',"application/octet-stream"},
>           {"Expect","100-continue"},
>           {'Host',"127.0.0.1:5984"},
>           {'User-Agent',"curl/7.31.0"}]
> [Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.112.0>] OAuth Params: [{"rev",
>                                     "1-23a888c74ba58fe20dc0d424133750bb"}]
> [Fri, 24 Jan 2014 16:17:28 GMT] [info] [<0.112.0>] 127.0.0.1 - - PUT
> /from/test/x937?rev=1-23a888c74ba58fe20dc0d424133750bb 201
> [Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.123.0>] 'PUT'
> /_replicator/test_slow {1,1} from "127.0.0.1"
> Headers: [{'Accept',"*/*"},
>           {'Authorization',"Basic YWRtaW46YWRtaW4="},
>           {'Content-Length',"31"},
>           {'Content-Type',"application/x-www-form-urlencoded"},
>           {'Host',"127.0.0.1:5984"},
>           {'User-Agent',"curl/7.31.0"}]
> [Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.123.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1148.0>] OS Process Start ::
> #Port<0.5880>
> [Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.104.0>] Teach ddoc to new proc
> {proc,<0.1148.0>,<<"javascript">>,
>                                             [],
>                                             {couch_os_process,prompt},
>                                             {couch_os_process,set_timeout},
>                                             {couch_os_process,stop}} with
> DDocKey: {<<"_design/_replicator">>,
>
> <<"1-5bfa2c99eefe2b2eb4962db50aa3cfd4">>}
> [Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1148.0>] OS Process
> #Port<0.5880> Input  ::
> ["ddoc","new","_design/_replicator",{"_id":"_design/_replicator","_rev":"1-5bfa2c99eefe2b2eb4962db50aa3cfd4","language":"javascript","validate_doc_update":"\n
> function(newDoc, oldDoc, userCtx) {\n        function
> reportError(error_msg) {\n            log('Error writing document `' +
> newDoc._id +\n                '\\' to the replicator database: ' +
> error_msg);\n            throw({forbidden: error_msg});\n
> }\n\n        function validateEndpoint(endpoint, fieldName) {\n
> if ((typeof endpoint !== 'string') &&\n                ((typeof endpoint
> !== 'object') || (endpoint === null))) {\n\n
> reportError('The `' + fieldName + '\\' property must exist'
> +\n                    ' and be either a string or an
>  object.');\n            }\n\n            if (typeof endpoint ===
> 'object') {\n                if ((typeof endpoint.url !== 'string') ||
> !endpoint.url) {\n                    reportError('The url property must
> exist in the `' +\n                        fieldName + '\\' field and must
> be a non-empty string.');\n                }\n\n                if ((typeof
> endpoint.auth !== 'undefined') &&\n                    ((typeof
> endpoint.auth !== 'object') ||\n                        endpoint.auth ===
> null)) {\n\n                    reportError('`' + fieldName
> +\n                        '.auth\\' must be a non-null
> object.');\n                }\n\n                if ((typeof
> endpoint.headers !== 'undefined')
>  &&\n                    ((typeof endpoint.headers !== 'object')
> ||\n                        endpoint.headers === null))
> {\n\n                    reportError('`' + fieldName
> +\n                        '.headers\\' must be a non-null
> object.');\n                }\n            }\n        }\n\n        var
> isReplicator = (userCtx.roles.indexOf('_replicator') >= 0);\n        var
> isAdmin = (userCtx.roles.indexOf('_admin') >= 0);\n\n        if (oldDoc &&
> !newDoc._deleted && !isReplicator &&\n
> (oldDoc._replication_state === 'triggered')) {\n
> reportError('Only the replicator can edit replication documents '
> +\n                'that are in the triggered state.');\n
> }\n\n        if (!newDoc._deleted) {\n
>  validateEndpoint(newDoc.source, 'source');\n
> validateEndpoint(newDoc.target, 'target');\n\n            if ((typeof
> newDoc.create_target !== 'undefined') &&\n                (typeof
> newDoc.create_target !== 'boolean')) {\n\n                reportError('The
> `create_target\\' field must be a boolean.');\n            }\n\n
> if ((typeof newDoc.continuous !== 'undefined') &&\n                (typeof
> newDoc.continuous !== 'boolean')) {\n\n                reportError('The
> `continuous\\' field must be a boolean.');\n            }\n\n            if
> ((typeof newDoc.doc_ids !== 'undefined') &&\n
> !isArray(newDoc.doc_ids)) {\n\n                reportError('The `doc_ids\\'
> field must be an array of strings.');\n            }\n\n            if
> ((typeof
>  newDoc.filter !== 'undefined') &&\n                ((typeof newDoc.filter
> !== 'string') || !newDoc.filter)) {\n\n                reportError('The
> `filter\\' field must be a non-empty string.');\n
> }\n\n            if ((typeof newDoc.query_params !== 'undefined')
> &&\n                ((typeof newDoc.query_params !== 'object')
> ||\n                    newDoc.query_params === null)) {\n\n
> reportError('The `query_params\\' field must be an object.');\n
> }\n\n            if (newDoc.user_ctx) {\n                var user_ctx =
> newDoc.user_ctx;\n\n                if ((typeof user_ctx !== 'object') ||
> (user_ctx === null)) {\n                    reportError('The `user_ctx\\'
> property must be a ' +\n                        'non-null
>  object.');\n                }\n\n                if (!(user_ctx.name ===
> null ||\n                    (typeof user_ctx.name === 'undefined')
> ||\n                    ((typeof user_ctx.name === 'string')
> &&\n                        user_ctx.name.length > 0)))
> {\n\n                    reportError('The `user_ctx.name\\' property must
> be a ' +\n                        'non-empty string or
> null.');\n                }\n\n                if (!isAdmin && (
> user_ctx.name !== userCtx.name)) {\n                    reportError('The
> given `user_ctx.name\\' is not valid');\n
> }\n\n                if (user_ctx.roles && !isArray(user_ctx.roles))
> {\n                    reportError('The `user_ctx.roles\\' property must be
> '
>  +\n                        'an array of strings.');\n
> }\n\n                if (!isAdmin && user_ctx.roles) {\n
> for (var i = 0; i < user_ctx.roles.length; i++) {\n
> var role = user_ctx.roles[i];\n\n                        if (typeof role
> !== 'string' || role.length === 0) {\n
> reportError('Roles must be non-empty strings.');\n
> }\n                        if (userCtx.roles.indexOf(role) === -1)
> {\n                            reportError('Invalid role (`' + role
> +\n                                '\\') in the
> `user_ctx\\'');\n
>  }\n                    }\n                }\n            } else
> {\n                if (!isAdmin) {\n                    reportError('The
> `user_ctx\\' property is missing (it is ' +\n
> 'optional for admins only).');\n                }\n            }\n        }
> else {\n            if (!isAdmin) {\n                if (!oldDoc.user_ctx
> || (oldDoc.user_ctx.name !== userCtx.name)) {\n
> reportError('Replication documents can only be deleted by '
> +\n                        'admins or by the users who created
> them.');\n                }\n            }\n        }\n    }\n"}]
> [Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1148.0>] OS Process
> #Port<0.5880> Output :: true
> [Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1148.0>] OS Process
> #Port<0.5880> Input  :: ["reset",{"reduce_limit":true,"timeout":600000}]
> [Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1148.0>] OS Process
> #Port<0.5880> Output :: true
> [Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1148.0>] OS Process
> #Port<0.5880> Input  ::
> ["ddoc","_design/_replicator",["validate_doc_update"],[{"_id":"test_slow","source":"from","target":"to","owner":"admin","_revisions":{"start":0,"ids":[]}},null,{"db":"_replicator","name":"admin","roles":["_admin"]},{}]]
> [Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1148.0>] OS Process
> #Port<0.5880> Output :: 1
> [Fri, 24 Jan 2014 16:17:28 GMT] [info] [<0.123.0>] 127.0.0.1 - - PUT
> /_replicator/test_slow 201
> [Fri, 24 Jan 2014 16:17:28 GMT] [info] [<0.141.0>] Attempting to start
> replication `2c7e8c1e1f8e0dde2e29b03395320da4` (document `test_slow`).
> [Fri, 24 Jan 2014 16:17:28 GMT] [info] [<0.1151.0>] Replication
> `"2c7e8c1e1f8e0dde2e29b03395320da4"` is using:
>     4 worker processes
>     a worker batch size of 500
>     20 HTTP connections
>     a connection timeout of 30000 milliseconds
>     10 retries per request
>     socket options are: [{keepalive,true},{nodelay,false}]
> [Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1151.0>] Worker pids are:
> [<0.1157.0>,<0.1158.0>,<0.1159.0>,
>                                        <0.1160.0>]
> [Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1157.0>] Worker flushing doc
> with attachments
> [Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.104.0>] DDocProc found for
> DDocKey: {<<"_design/_replicator">>,
>
> <<"1-5bfa2c99eefe2b2eb4962db50aa3cfd4">>}
> [Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1148.0>] OS Process
> #Port<0.5880> Input  :: ["reset",{"reduce_limit":true,"timeout":600000}]
> [Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1148.0>] OS Process
> #Port<0.5880> Output :: true
> [Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1148.0>] OS Process
> #Port<0.5880> Input  ::
>
>  ["ddoc","_design/_replicator",["validate_doc_update"],[{"_id":"test_slow","_rev":"9-e8771f3a7da376bf5ec7de6d0621e094","source":"from","target":"to","owner":"admin","_replication_state":"triggered","_replication_state_time":"2014-01-24T10:17:28-06:00","_replication_id":"2c7e8c1e1f8e0dde2e29b03395320da4","_revisions":{"start":9,"ids":["e8771f3a7da376bf5ec7de6d0621e094","bc6b5a78f5aca5df6186f319bdfff864","b13beb5b518d56958c6f686712512608","0fceb2c155368db6f57f9236244f92ee","c458b4d077f9a36c2aa5f90ffad0722e","c8ce2f3c769aa5080587f2223c5a2fa1","eecc4a3518160cd983b2bd7f01f3b166","7b75ee746380c1a791f5e9f2fb4a2386","5c3c9988bbf8fd048bdde2d7ecab7dd6"]}},{"_id":"test_slow","_rev":"9-e8771f3a7da376bf5ec7de6d0621e094","source":"from","target":"to","owner":"admin","_revisions":{"start":9,"ids":["e8771f3a7da376bf5ec7de6d0621e094","bc6b5a78f5aca5df6186f319bdfff864","b13beb5b518d56958c6f686712512608","0fceb2c155368db6f57f9236244f92ee","c458b4d077f9a36c2aa5f90ffad0722e
>
> ","c8ce2f3c769aa5080587f2223c5a2fa1","eecc4a3518160cd983b2bd7f01f3b166","7b75ee746380c1a791f5e9f2fb4a2386","5c3c9988bbf8fd048bdde2d7ecab7dd6"]}},{"db":"_replicator","name":null,"roles":["_admin","_replicator"]},{}]]
> [Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1148.0>] OS Process
> #Port<0.5880> Output :: 1
> [Fri, 24 Jan 2014 16:17:28 GMT] [info] [<0.1151.0>] Document `test_slow`
> triggered replication `2c7e8c1e1f8e0dde2e29b03395320da4`
> [Fri, 24 Jan 2014 16:17:28 GMT] [info] [<0.1150.0>] starting new
> replication `2c7e8c1e1f8e0dde2e29b03395320da4` at <0.1151.0> (`from` ->
> `to`)
> [Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1157.0>] Worker reported
> completion of seq {1,2}
> [Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1151.0>] Worker reported seq
> {1,2}, through seq was {0,0}, new through seq is {1,
>
> 2}, highest seq done was {0,
>
> 0}, new highest seq done is {1,
>
> 2}
> Seqs in progress were: [{1,2}]
> Seqs in progress are now: []
> [Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.93.0>] New task status for
> <0.1151.0>: [{checkpointed_source_seq,
>                                                      0},
>                                                     {continuous,false},
>
> {doc_id,<<"test_slow">>},
>                                                     {doc_write_failures,0},
>                                                     {docs_read,1},
>                                                     {docs_written,1},
>
> {missing_revisions_found,
>                                                      1},
>                                                     {progress,100},
>                                                     {replication_id,
>
> <<"2c7e8c1e1f8e0dde2e29b03395320da4">>},
>                                                     {revisions_checked,1},
>                                                     {source,<<"from">>},
>                                                     {source_seq,2},
>
> {started_on,1390580248},
>                                                     {target,<<"to">>},
>                                                     {type,replication},
>
> {updated_on,1390580248}]
> [Fri, 24 Jan 2014 16:17:30 GMT] [info] [<0.1151.0>] recording a checkpoint
> for `from` -> `to` at source update_seq 2
> [Fri, 24 Jan 2014 16:17:30 GMT] [debug] [<0.93.0>] New task status for
> <0.1151.0>: [{checkpointed_source_seq,
>                                                      2},
>                                                     {continuous,false},
>
> {doc_id,<<"test_slow">>},
>                                                     {doc_write_failures,0},
>                                                     {docs_read,1},
>                                                     {docs_written,1},
>
> {missing_revisions_found,
>                                                      1},
>                                                     {progress,100},
>                                                     {replication_id,
>
> <<"2c7e8c1e1f8e0dde2e29b03395320da4">>},
>                                                     {revisions_checked,1},
>                                                     {source,<<"from">>},
>                                                     {source_seq,2},
>
> {started_on,1390580248},
>                                                     {target,<<"to">>},
>                                                     {type,replication},
>
> {updated_on,1390580250}]
> [Fri, 24 Jan 2014 16:17:30 GMT] [debug] [<0.104.0>] DDocProc found for
> DDocKey: {<<"_design/_replicator">>,
>
> <<"1-5bfa2c99eefe2b2eb4962db50aa3cfd4">>}
> [Fri, 24 Jan 2014 16:17:30 GMT] [debug] [<0.1148.0>] OS Process
> #Port<0.5880> Input  :: ["reset",{"reduce_limit":true,"timeout":600000}]
> [Fri, 24 Jan 2014 16:17:30 GMT] [debug] [<0.1148.0>] OS Process
> #Port<0.5880> Output :: true
> [Fri, 24 Jan 2014 16:17:30 GMT] [debug] [<0.1148.0>] OS Process
> #Port<0.5880> Input  ::
>
>  ["ddoc","_design/_replicator",["validate_doc_update"],[{"_id":"test_slow","_rev":"10-5ec32fc496eaa6af8e0af0ff9e75ec16","source":"from","target":"to","owner":"admin","_replication_state":"completed","_replication_state_time":"2014-01-24T10:17:30-06:00","_replication_id":"2c7e8c1e1f8e0dde2e29b03395320da4","_replication_stats":{"revisions_checked":1,"missing_revisions_found":1,"docs_read":1,"docs_written":1,"doc_write_failures":0,"checkpointed_source_seq":2},"_revisions":{"start":10,"ids":["5ec32fc496eaa6af8e0af0ff9e75ec16","e8771f3a7da376bf5ec7de6d0621e094","bc6b5a78f5aca5df6186f319bdfff864","b13beb5b518d56958c6f686712512608","0fceb2c155368db6f57f9236244f92ee","c458b4d077f9a36c2aa5f90ffad0722e","c8ce2f3c769aa5080587f2223c5a2fa1","eecc4a3518160cd983b2bd7f01f3b166","7b75ee746380c1a791f5e9f2fb4a2386","5c3c9988bbf8fd048bdde2d7ecab7dd6"]}},{"_id":"test_slow","_rev":"10-5ec32fc496eaa6af8e0af0ff9e75ec16","source":"from","target":"to","owner":"admin","_replicati
>
> on_state":"triggered","_replication_state_time":"2014-01-24T10:17:28-06:00","_replication_id":"2c7e8c1e1f8e0dde2e29b03395320da4","_revisions":{"start":10,"ids":["5ec32fc496eaa6af8e0af0ff9e75ec16","e8771f3a7da376bf5ec7de6d0621e094","bc6b5a78f5aca5df6186f319bdfff864","b13beb5b518d56958c6f686712512608","0fceb2c155368db6f57f9236244f92ee","c458b4d077f9a36c2aa5f90ffad0722e","c8ce2f3c769aa5080587f2223c5a2fa1","eecc4a3518160cd983b2bd7f01f3b166","7b75ee746380c1a791f5e9f2fb4a2386","5c3c9988bbf8fd048bdde2d7ecab7dd6"]}},{"db":"_replicator","name":null,"roles":["_admin","_replicator"]},{}]]
> [Fri, 24 Jan 2014 16:17:30 GMT] [debug] [<0.1148.0>] OS Process
> #Port<0.5880> Output :: 1
> [Fri, 24 Jan 2014 16:17:30 GMT] [info] [<0.1151.0>] Replication
> `2c7e8c1e1f8e0dde2e29b03395320da4` finished (triggered by document
> `test_slow`)
> [Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1119.0>] 'DELETE' /from {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"*/*"},
>           {'Authorization',"Basic YWRtaW46YWRtaW4="},
>           {'Host',"127.0.0.1:5984"},
>           {'User-Agent',"curl/7.31.0"}]
> [Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1119.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:26:38 GMT] [info] [<0.1119.0>] 127.0.0.1 - - DELETE
> /from 200
> [Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1122.0>] 'DELETE' /to {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"*/*"},
>           {'Authorization',"Basic YWRtaW46YWRtaW4="},
>           {'Host',"127.0.0.1:5984"},
>           {'User-Agent',"curl/7.31.0"}]
> [Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1122.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:26:38 GMT] [info] [<0.1122.0>] 127.0.0.1 - - DELETE
> /to 200
> [Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1124.0>] 'PUT' /from {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"*/*"},
>           {'Authorization',"Basic YWRtaW46YWRtaW4="},
>           {'Host',"127.0.0.1:5984"},
>           {'User-Agent',"curl/7.31.0"}]
> [Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1124.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:26:38 GMT] [info] [<0.1124.0>] 127.0.0.1 - - PUT
> /from 201
> [Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1134.0>] 'PUT' /to {1,1} from
> "127.0.0.1"
> Headers: [{'Accept',"*/*"},
>           {'Authorization',"Basic YWRtaW46YWRtaW4="},
>           {'Host',"127.0.0.1:5984"},
>           {'User-Agent',"curl/7.31.0"}]
> [Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1134.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:26:38 GMT] [info] [<0.1134.0>] 127.0.0.1 - - PUT /to
> 201
> [Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1144.0>] 'PUT' /from/test
> {1,1} from "127.0.0.1"
> Headers: [{'Accept',"*/*"},
>           {'Authorization',"Basic YWRtaW46YWRtaW4="},
>           {'Content-Length',"16"},
>           {'Content-Type',"application/x-www-form-urlencoded"},
>           {'Host',"127.0.0.1:5984"},
>           {'User-Agent',"curl/7.31.0"}]
> [Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1144.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:26:38 GMT] [info] [<0.1144.0>] 127.0.0.1 - - PUT
> /from/test 201
> [Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1145.0>] 'PUT'
> /from/test/x937?rev=1-23a888c74ba58fe20dc0d424133750bb {1,
>
> 1} from "127.0.0.1"
> Headers: [{'Accept',"*/*"},
>           {'Content-Length',"4185522"},
>           {'Content-Type',"application/octet-stream"},
>           {"Expect","100-continue"},
>           {'Host',"127.0.0.1:5984"},
>           {'User-Agent',"curl/7.31.0"}]
> [Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1145.0>] OAuth Params: [{"rev",
>                                      "1-23a888c74ba58fe20dc0d424133750bb"}]
> [Fri, 24 Jan 2014 16:26:38 GMT] [info] [<0.1145.0>] 127.0.0.1 - - PUT
> /from/test/x937?rev=1-23a888c74ba58fe20dc0d424133750bb 201
> [Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1147.0>] 'POST' /_replicate
> {1,1} from "127.0.0.1"
> Headers: [{'Accept',"*/*"},
>           {'Authorization',"Basic YWRtaW46YWRtaW4="},
>           {'Content-Length',"31"},
>           {'Content-Type',"application/json"},
>           {'Host',"127.0.0.1:5984"},
>           {'User-Agent',"curl/7.31.0"}]
> [Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1147.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:26:38 GMT] [info] [<0.1744.0>] Replication
> `"32b3b1ede908033172b54853f9031d30"` is using:
>     4 worker processes
>     a worker batch size of 500
>     20 HTTP connections
>     a connection timeout of 30000 milliseconds
>     10 retries per request
>     socket options are: [{keepalive,true},{nodelay,false}]
> [Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1744.0>] Worker pids are:
> [<0.1750.0>,<0.1751.0>,<0.1752.0>,
>                                        <0.1753.0>]
> [Fri, 24 Jan 2014 16:26:38 GMT] [info] [<0.1147.0>] starting new
> replication `32b3b1ede908033172b54853f9031d30` at <0.1744.0> (`from` ->
> `to`)
> [Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1750.0>] Worker flushing doc
> with attachments
> [Fri, 24 Jan 2014 16:26:39 GMT] [debug] [<0.1750.0>] Worker reported
> completion of seq {1,2}
> [Fri, 24 Jan 2014 16:26:39 GMT] [debug] [<0.1744.0>] Worker reported seq
> {1,2}, through seq was {0,0}, new through seq is {1,
>
> 2}, highest seq done was {0,
>
> 0}, new highest seq done is {1,
>
> 2}
> Seqs in progress were: [{1,2}]
> Seqs in progress are now: []
> [Fri, 24 Jan 2014 16:26:39 GMT] [debug] [<0.93.0>] New task status for
> <0.1744.0>: [{checkpointed_source_seq,
>                                                      0},
>                                                     {continuous,false},
>                                                     {doc_id,null},
>                                                     {doc_write_failures,0},
>                                                     {docs_read,1},
>                                                     {docs_written,1},
>
> {missing_revisions_found,
>                                                      1},
>                                                     {progress,100},
>                                                     {replication_id,
>
> <<"32b3b1ede908033172b54853f9031d30">>},
>                                                     {revisions_checked,1},
>                                                     {source,<<"from">>},
>                                                     {source_seq,2},
>
> {started_on,1390580798},
>                                                     {target,<<"to">>},
>                                                     {type,replication},
>
> {updated_on,1390580799}]
> [Fri, 24 Jan 2014 16:26:40 GMT] [info] [<0.1744.0>] recording a checkpoint
> for `from` -> `to` at source update_seq 2
> [Fri, 24 Jan 2014 16:26:40 GMT] [debug] [<0.93.0>] New task status for
> <0.1744.0>: [{checkpointed_source_seq,
>                                                      2},
>                                                     {continuous,false},
>                                                     {doc_id,null},
>                                                     {doc_write_failures,0},
>                                                     {docs_read,1},
>                                                     {docs_written,1},
>
> {missing_revisions_found,
>                                                      1},
>                                                     {progress,100},
>                                                     {replication_id,
>
> <<"32b3b1ede908033172b54853f9031d30">>},
>                                                     {revisions_checked,1},
>                                                     {source,<<"from">>},
>                                                     {source_seq,2},
>
> {started_on,1390580798},
>                                                     {target,<<"to">>},
>                                                     {type,replication},
>
> {updated_on,1390580800}]
> [Fri, 24 Jan 2014 16:26:40 GMT] [info] [<0.1147.0>] 127.0.0.1 - - POST
> /_replicate 200
>

Re: Replication of attachment is extremely slow.. LOGGED INFORMATION

Posted by Paul Davis <pa...@gmail.com>.
The important thing to note here is that test 1 is using URLs for
databases where tests 2 and 3 are using internal replication. Reading
the logs it shows that the request to write the attachment took about
72 seconds. Out of curiosity could you rerun test 3 twice more with
the following JSON bodies:

{"from":"http://localhost:5984/from", "to":"to"}
{"from":"from", "to":"http://localhost:5984/to"}

This should narrow down if there's a problem with reading attachments,
writing attachments, or some weird interplay between reading and
writing attachments.

If it turns out that the only slow version is when both are using the
"http://localhost:5984/dbname" versions then can you run one more
test:

{"from":"http://127.0.0.1:5984/from", "to":"http://localhost:5984/to"}

If that's also slow then we probably have a weird problem with the
multipart code (fun!). If its not slow then most likely this is a bug
in the HTTP worker pool implementation (also fun!).

Re: Replication of attachment is extremely slow.. LOGGED INFORMATION

Posted by "matt j. sorenson" <ma...@sorensonbros.net>.
rfc1855 probably doesn't mention it, but links out to gist.github.com (or
any other pastebin-like service) is handy for log sharing, stack traces and
such, since attachments and inline dumps can be difficult, impossible, or
just cumbersome.

#TOPPOST because [Message clipped] :P

P.s. love seeing how helpful this community is!

--Matt


On Fri, Jan 24, 2014 at 1:41 PM, Scott Weber <sc...@sbcglobal.net>wrote:

> I do not see the log attached. It must have been stripped by the list
> server.
> I will copy/paste it to the bottom of this email.  It is 1024 lines.
>
>
>
>
> ----- Original Message -----
> From: Scott Weber <sc...@sbcglobal.net>
> To: "user@couchdb.apache.org" <us...@couchdb.apache.org>
> Cc: "replication@couchdb.apache.org" <re...@couchdb.apache.org>
> Sent: Friday, January 24, 2014 1:34 PM
> Subject: Re: Replication of attachment is extremely slow.. LOGGED
> INFORMATION
>
> We have a duplication of the problem from a cleaned installation.  And
> there are some interesting things in the log, but I don't know what they
> mean, since I am not familiar with the internals of CouchDB.
>
> I have attached the couch log. I can send the actual file being
> replicated, but it is about 4Meg.  Too big to make a reasonable
> attachment.  And I don't think it will be of value to this issue.
>
> As to the log, it is broken in three sections (tests), which I will
> outline:
> In all cases, it first deletes all databases, then creates them, and adds
> a doc and attachment.
> <1>
> The first is where replication was requested via a script HTTP post.
> The attachment is uploaded at line 36 - content length 4185522 bytes
> The "_replicate" request is PUT at line 49.
> Then a bunch of "Minor error in HTTP request" messages appear.  Not sure
> what that means.
> Then starting at line 328 to 329, you can see 5 second gaps as it tries to
> "GET" from the "from" database
> and a bunch of "New task status" messages are repeated (about 15 of them).
> This repeats, showing 5 second pauses until line 740, where it says "POST
> /to/_ensure_full_commit 201"
> TOTAL TIME:  16:03:03 to 16:04:16   One minute, thirteen seconds.
>
> <2>
> The next test was done using CURL, starting at line 770, it deletes the
> databases, and starts over.
> At line 818, there is the PUT request to the _replicator db  (NOTE: This
> is "_replicator", not "_replicate", what is the difference?)
> There are only 2 "new task status" messages, and the replication is done
> by at line 911
> TOTAL TIME:  16:17:28 to 16:17:30   2 seconds.
>
> <3>
> The next test was done using curl as well. It is a repeat of the second
> test, except the replication request was PUT to "_replicate" rather than
> "_replicator", just like the first test.
> It starts at line 912, and looks to be identical to everything in test 2.
> It took two seconds, there were only 2 "New task status" messages again.
>
> So, the only difference we see is the script used a header that has a
> different user-agent (and had a few other minor differences), and posts a
> replication request JSON which is this:
>    {"_id" : "test",
>     "source" : "http://localhost:5984/from",
>     "target" : "http://localhost:5984/to",
>     "create_target" : false,
>     "continuous" : false }
>
> Which is slightly more comprehensive than the CURL JSON which is just this:
>      {"source":"from","target":"to"}
>
> But these differences should not cause the replication to be 30 times
> longer, should they?
>
> Any other ideas why one form of replication takes so much longer?
>
> -Scott
>
> -----------------PASTE-----------------------------------------
> [Fri, 24 Jan 2014 16:02:43 GMT] [info] [<0.35.0>] Apache CouchDB has
> started on http://0.0.0.0:5984/
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.122.0>] 'DELETE' /from {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"*/*"},
>           {'Authorization',"Basic YWRtaW46YWRtaW4="},
>           {'Host',"127.0.0.1:5984"},
>           {'User-Agent',"curl/7.31.0"}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.122.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.122.0>] 127.0.0.1 - - DELETE
> /from 200
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.173.0>] 'DELETE' /to {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"*/*"},
>           {'Authorization',"Basic YWRtaW46YWRtaW4="},
>           {'Host',"127.0.0.1:5984"},
>           {'User-Agent',"curl/7.31.0"}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.173.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.173.0>] 127.0.0.1 - - DELETE
> /to 200
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.125.0>] 'PUT' /from {1,1} from
> "127.0.0.1"
> Headers: [{'Accept',"*/*"},
>           {'Authorization',"Basic YWRtaW46YWRtaW4="},
>           {'Host',"127.0.0.1:5984"},
>           {'User-Agent',"curl/7.31.0"}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.125.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.125.0>] 127.0.0.1 - - PUT /from
> 201
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.124.0>] 'PUT' /to {1,1} from
> "127.0.0.1"
> Headers: [{'Accept',"*/*"},
>           {'Authorization',"Basic YWRtaW46YWRtaW4="},
>           {'Host',"127.0.0.1:5984"},
>           {'User-Agent',"curl/7.31.0"}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.124.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.124.0>] 127.0.0.1 - - PUT /to
> 201
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.126.0>] 'PUT' /from/test {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"*/*"},
>           {'Authorization',"Basic YWRtaW46YWRtaW4="},
>           {'Content-Length',"16"},
>           {'Content-Type',"application/x-www-form-urlencoded"},
>           {'Host',"127.0.0.1:5984"},
>           {'User-Agent',"curl/7.31.0"}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.126.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.126.0>] 127.0.0.1 - - PUT
> /from/test 201
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.127.0>] 'PUT'
> /from/test/x937?rev=1-23a888c74ba58fe20dc0d424133750bb {1,
>
> 1} from "127.0.0.1"
> Headers: [{'Accept',"*/*"},
>           {'Content-Length',"4185522"},
>           {'Content-Type',"application/octet-stream"},
>           {"Expect","100-continue"},
>           {'Host',"127.0.0.1:5984"},
>           {'User-Agent',"curl/7.31.0"}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.127.0>] OAuth Params: [{"rev",
>                                     "1-23a888c74ba58fe20dc0d424133750bb"}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.127.0>] 127.0.0.1 - - PUT
> /from/test/x937?rev=1-23a888c74ba58fe20dc0d424133750bb 201
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.114.0>] 'POST' /_replicate
> {1,0} from "127.0.0.1"
> Headers: [{'Authorization',"Basic cmlhbjpwYXNzd29yZA=="},
>           {'Content-Length',"135"},
>           {'Content-Type',"application/json"},
>           {'Host',"127.0.0.1"}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.114.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] 'HEAD' /from/ {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.115.0>] 127.0.0.1 - - HEAD
> /from/ 200
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] 'HEAD' /to/ {1,1} from
> "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.117.0>] 127.0.0.1 - - HEAD /to/
> 200
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] 'GET' /from/ {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.115.0>] 127.0.0.1 - - GET
> /from/ 200
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] 'GET' /to/ {1,1} from
> "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.117.0>] 127.0.0.1 - - GET /to/
> 200
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] 'GET'
> /from/_local/34754f379443f9584e7595cc8de826ff {1,1} from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] Minor error in HTTP
> request: {not_found,missing}
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] Stacktrace:
> [{couch_httpd_db,couch_doc_open,4,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
>                                    {line,806}]},
>                                  {couch_httpd_db,db_doc_req,3,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
>                                    {line,498}]},
>                                  {couch_httpd_db,do_db_req,2,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
>                                    {line,234}]},
>                                  {couch_httpd,handle_request_int,5,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd.erl"},
>                                    {line,332}]},
>                                  {mochiweb_http,headers,5,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/mochiweb/mochiweb_http.erl"},
>                                    {line,94}]},
>                                  {proc_lib,init_p_do_apply,3,
>                                   [{file,"proc_lib.erl"},{line,239}]}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.115.0>] 127.0.0.1 - - GET
> /from/_local/34754f379443f9584e7595cc8de826ff 404
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] httpd 404 error
> response:
>  {"error":"not_found","reason":"missing"}
>
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] 'GET'
> /from/_local/b035f0fbb5d2d5e1afac34f3708e844e {1,1} from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] Minor error in HTTP
> request: {not_found,missing}
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] Stacktrace:
> [{couch_httpd_db,couch_doc_open,4,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
>                                    {line,806}]},
>                                  {couch_httpd_db,db_doc_req,3,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
>                                    {line,498}]},
>                                  {couch_httpd_db,do_db_req,2,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
>                                    {line,234}]},
>                                  {couch_httpd,handle_request_int,5,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd.erl"},
>                                    {line,332}]},
>                                  {mochiweb_http,headers,5,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/mochiweb/mochiweb_http.erl"},
>                                    {line,94}]},
>                                  {proc_lib,init_p_do_apply,3,
>                                   [{file,"proc_lib.erl"},{line,239}]}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.115.0>] 127.0.0.1 - - GET
> /from/_local/b035f0fbb5d2d5e1afac34f3708e844e 404
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] httpd 404 error
> response:
>  {"error":"not_found","reason":"missing"}
>
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] 'GET'
> /from/_local/829e755391ecedb3c3db2f24421f3bcb {1,1} from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] Minor error in HTTP
> request: {not_found,missing}
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] Stacktrace:
> [{couch_httpd_db,couch_doc_open,4,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
>                                    {line,806}]},
>                                  {couch_httpd_db,db_doc_req,3,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
>                                    {line,498}]},
>                                  {couch_httpd_db,do_db_req,2,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
>                                    {line,234}]},
>                                  {couch_httpd,handle_request_int,5,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd.erl"},
>                                    {line,332}]},
>                                  {mochiweb_http,headers,5,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/mochiweb/mochiweb_http.erl"},
>                                    {line,94}]},
>                                  {proc_lib,init_p_do_apply,3,
>                                   [{file,"proc_lib.erl"},{line,239}]}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.115.0>] 127.0.0.1 - - GET
> /from/_local/829e755391ecedb3c3db2f24421f3bcb 404
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] httpd 404 error
> response:
>  {"error":"not_found","reason":"missing"}
>
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] 'GET'
> /to/_local/34754f379443f9584e7595cc8de826ff {1,1} from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] Minor error in HTTP
> request: {not_found,missing}
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] Stacktrace:
> [{couch_httpd_db,couch_doc_open,4,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
>                                    {line,806}]},
>                                  {couch_httpd_db,db_doc_req,3,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
>                                    {line,498}]},
>                                  {couch_httpd_db,do_db_req,2,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
>                                    {line,234}]},
>                                  {couch_httpd,handle_request_int,5,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd.erl"},
>                                    {line,332}]},
>                                  {mochiweb_http,headers,5,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/mochiweb/mochiweb_http.erl"},
>                                    {line,94}]},
>                                  {proc_lib,init_p_do_apply,3,
>                                   [{file,"proc_lib.erl"},{line,239}]}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.117.0>] 127.0.0.1 - - GET
> /to/_local/34754f379443f9584e7595cc8de826ff 404
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] httpd 404 error
> response:
>  {"error":"not_found","reason":"missing"}
>
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] 'GET'
> /to/_local/b035f0fbb5d2d5e1afac34f3708e844e {1,1} from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] Minor error in HTTP
> request: {not_found,missing}
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] Stacktrace:
> [{couch_httpd_db,couch_doc_open,4,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
>                                    {line,806}]},
>                                  {couch_httpd_db,db_doc_req,3,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
>                                    {line,498}]},
>                                  {couch_httpd_db,do_db_req,2,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
>                                    {line,234}]},
>                                  {couch_httpd,handle_request_int,5,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd.erl"},
>                                    {line,332}]},
>                                  {mochiweb_http,headers,5,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/mochiweb/mochiweb_http.erl"},
>                                    {line,94}]},
>                                  {proc_lib,init_p_do_apply,3,
>                                   [{file,"proc_lib.erl"},{line,239}]}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.117.0>] 127.0.0.1 - - GET
> /to/_local/b035f0fbb5d2d5e1afac34f3708e844e 404
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] httpd 404 error
> response:
>  {"error":"not_found","reason":"missing"}
>
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] 'GET'
> /to/_local/829e755391ecedb3c3db2f24421f3bcb {1,1} from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] Minor error in HTTP
> request: {not_found,missing}
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] Stacktrace:
> [{couch_httpd_db,couch_doc_open,4,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
>                                    {line,806}]},
>                                  {couch_httpd_db,db_doc_req,3,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
>                                    {line,498}]},
>                                  {couch_httpd_db,do_db_req,2,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
>                                    {line,234}]},
>                                  {couch_httpd,handle_request_int,5,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd.erl"},
>                                    {line,332}]},
>                                  {mochiweb_http,headers,5,
>                                   [{file,
>
> "c:/cygwin/relax/APACHE~1.0/src/mochiweb/mochiweb_http.erl"},
>                                    {line,94}]},
>                                  {proc_lib,init_p_do_apply,3,
>                                   [{file,"proc_lib.erl"},{line,239}]}]
> [Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.117.0>] 127.0.0.1 - - GET
> /to/_local/829e755391ecedb3c3db2f24421f3bcb 404
> [Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] httpd 404 error
> response:
>  {"error":"not_found","reason":"missing"}
>
> [Fri, 24 Jan 2014 16:03:04 GMT] [debug] [<0.119.0>] 'GET'
> /from/_changes?feed=normal&style=all_docs&since=0&heartbeat=10000 {1,
>
> 1} from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:04 GMT] [debug] [<0.119.0>] OAuth Params:
> [{"feed","normal"},
>                                    {"style","all_docs"},
>                                    {"since","0"},
>                                    {"heartbeat","10000"}]
> [Fri, 24 Jan 2014 16:03:04 GMT] [info] [<0.119.0>] 127.0.0.1 - - GET
> /from/_changes?feed=normal&style=all_docs&since=0&heartbeat=10000 200
> [Fri, 24 Jan 2014 16:03:04 GMT] [info] [<0.203.0>] Replication
> `"34754f379443f9584e7595cc8de826ff"` is using:
>     4 worker processes
>     a worker batch size of 500
>     20 HTTP connections
>     a connection timeout of 30000 milliseconds
>     10 retries per request
>     socket options are: [{keepalive,true},{nodelay,false}]
> [Fri, 24 Jan 2014 16:03:04 GMT] [debug] [<0.203.0>] Worker pids are:
> [<0.217.0>,<0.219.0>,<0.221.0>,<0.223.0>]
> [Fri, 24 Jan 2014 16:03:04 GMT] [info] [<0.114.0>] starting new
> replication `34754f379443f9584e7595cc8de826ff` at <0.203.0> (`
> http://localhost:5984/from/` -> `http://localhost:5984/to/`)
> [Fri, 24 Jan 2014 16:03:04 GMT] [debug] [<0.117.0>] 'POST' /to/_revs_diff
> {1,1} from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"47"},
>           {'Content-Type',"application/json"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:04 GMT] [debug] [<0.117.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:04 GMT] [info] [<0.117.0>] 127.0.0.1 - - POST
> /to/_revs_diff 200
> [Fri, 24 Jan 2014 16:03:04 GMT] [debug] [<0.115.0>] 'GET'
> /from/test?revs=true&open_revs=%5B%222-d598f71bc82752ec68c68645c2bd46d5%22%5D&latest=true
> {1,
>
> 1} from "127.0.0.1"
> Headers: [{'Accept',"multipart/mixed"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:04 GMT] [debug] [<0.115.0>] OAuth Params:
> [{"revs","true"},
>                                    {"open_revs",
>
> "[\"2-d598f71bc82752ec68c68645c2bd46d5\"]"},
>                                    {"latest","true"}]
> [Fri, 24 Jan 2014 16:03:04 GMT] [info] [<0.115.0>] 127.0.0.1 - - GET
> /from/test?revs=true&open_revs=%5B%222-d598f71bc82752ec68c68645c2bd46d5%22%5D&latest=true
> 200
> [Fri, 24 Jan 2014 16:03:04 GMT] [debug] [<0.230.0>] Worker flushing doc
> with attachments
> [Fri, 24 Jan 2014 16:03:04 GMT] [debug] [<0.117.0>] 'PUT'
> /to/test?new_edits=false {1,1} from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"4186112"},
>           {'Content-Type',"multipart/related;
> boundary=\"49aeafb3545e308aef185b0c610bd9f0\""},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:04 GMT] [debug] [<0.117.0>] OAuth Params:
> [{"new_edits","false"}]
> [Fri, 24 Jan 2014 16:03:09 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:09 GMT] [debug] [<0.121.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:09 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET
> /from/ 200
> [Fri, 24 Jan 2014 16:03:09 GMT] [debug] [<0.93.0>] New task status for
> <0.203.0>: [{checkpointed_source_seq,0},
>                                                    {continuous,false},
>                                                    {doc_id,<<"test">>},
>                                                    {doc_write_failures,0},
>                                                    {docs_read,0},
>                                                    {docs_written,0},
>
> {missing_revisions_found,0},
>                                                    {progress,0},
>                                                    {replication_id,
>
> <<"34754f379443f9584e7595cc8de826ff">>},
>                                                    {revisions_checked,0},
>                                                    {source,
>                                                     <<"
> http://localhost:5984/from/">>},
>                                                    {source_seq,2},
>                                                    {started_on,1390579384},
>                                                    {target,
>                                                     <<"
> http://localhost:5984/to/">>},
>                                                    {type,replication},
>                                                    {updated_on,1390579389}]
> [Fri, 24 Jan 2014 16:03:14 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:14 GMT] [debug] [<0.121.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:14 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET
> /from/ 200
> [Fri, 24 Jan 2014 16:03:14 GMT] [debug] [<0.93.0>] New task status for
> <0.203.0>: [{checkpointed_source_seq,0},
>                                                    {continuous,false},
>                                                    {doc_id,<<"test">>},
>                                                    {doc_write_failures,0},
>                                                    {docs_read,0},
>                                                    {docs_written,0},
>
> {missing_revisions_found,0},
>                                                    {progress,0},
>                                                    {replication_id,
>
> <<"34754f379443f9584e7595cc8de826ff">>},
>                                                    {revisions_checked,0},
>                                                    {source,
>                                                     <<"
> http://localhost:5984/from/">>},
>                                                    {source_seq,2},
>                                                    {started_on,1390579384},
>                                                    {target,
>                                                     <<"
> http://localhost:5984/to/">>},
>                                                    {type,replication},
>                                                    {updated_on,1390579394}]
> [Fri, 24 Jan 2014 16:03:19 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:19 GMT] [debug] [<0.121.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:19 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET
> /from/ 200
> [Fri, 24 Jan 2014 16:03:19 GMT] [debug] [<0.93.0>] New task status for
> <0.203.0>: [{checkpointed_source_seq,0},
>                                                    {continuous,false},
>                                                    {doc_id,<<"test">>},
>                                                    {doc_write_failures,0},
>                                                    {docs_read,0},
>                                                    {docs_written,0},
>
> {missing_revisions_found,0},
>                                                    {progress,0},
>                                                    {replication_id,
>
> <<"34754f379443f9584e7595cc8de826ff">>},
>                                                    {revisions_checked,0},
>                                                    {source,
>                                                     <<"
> http://localhost:5984/from/">>},
>                                                    {source_seq,2},
>                                                    {started_on,1390579384},
>                                                    {target,
>                                                     <<"
> http://localhost:5984/to/">>},
>                                                    {type,replication},
>                                                    {updated_on,1390579399}]
> [Fri, 24 Jan 2014 16:03:24 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:24 GMT] [debug] [<0.121.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:24 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET
> /from/ 200
> [Fri, 24 Jan 2014 16:03:24 GMT] [debug] [<0.93.0>] New task status for
> <0.203.0>: [{checkpointed_source_seq,0},
>                                                    {continuous,false},
>                                                    {doc_id,<<"test">>},
>                                                    {doc_write_failures,0},
>                                                    {docs_read,0},
>                                                    {docs_written,0},
>
> {missing_revisions_found,0},
>                                                    {progress,0},
>                                                    {replication_id,
>
> <<"34754f379443f9584e7595cc8de826ff">>},
>                                                    {revisions_checked,0},
>                                                    {source,
>                                                     <<"
> http://localhost:5984/from/">>},
>                                                    {source_seq,2},
>                                                    {started_on,1390579384},
>                                                    {target,
>                                                     <<"
> http://localhost:5984/to/">>},
>                                                    {type,replication},
>                                                    {updated_on,1390579404}]
> [Fri, 24 Jan 2014 16:03:29 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:29 GMT] [debug] [<0.121.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:29 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET
> /from/ 200
> [Fri, 24 Jan 2014 16:03:29 GMT] [debug] [<0.93.0>] New task status for
> <0.203.0>: [{checkpointed_source_seq,0},
>                                                    {continuous,false},
>                                                    {doc_id,<<"test">>},
>                                                    {doc_write_failures,0},
>                                                    {docs_read,0},
>                                                    {docs_written,0},
>
> {missing_revisions_found,0},
>                                                    {progress,0},
>                                                    {replication_id,
>
> <<"34754f379443f9584e7595cc8de826ff">>},
>                                                    {revisions_checked,0},
>                                                    {source,
>                                                     <<"
> http://localhost:5984/from/">>},
>                                                    {source_seq,2},
>                                                    {started_on,1390579384},
>                                                    {target,
>                                                     <<"
> http://localhost:5984/to/">>},
>                                                    {type,replication},
>                                                    {updated_on,1390579409}]
> [Fri, 24 Jan 2014 16:03:34 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:34 GMT] [debug] [<0.121.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:34 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET
> /from/ 200
> [Fri, 24 Jan 2014 16:03:34 GMT] [debug] [<0.93.0>] New task status for
> <0.203.0>: [{checkpointed_source_seq,0},
>                                                    {continuous,false},
>                                                    {doc_id,<<"test">>},
>                                                    {doc_write_failures,0},
>                                                    {docs_read,0},
>                                                    {docs_written,0},
>
> {missing_revisions_found,0},
>                                                    {progress,0},
>                                                    {replication_id,
>
> <<"34754f379443f9584e7595cc8de826ff">>},
>                                                    {revisions_checked,0},
>                                                    {source,
>                                                     <<"
> http://localhost:5984/from/">>},
>                                                    {source_seq,2},
>                                                    {started_on,1390579384},
>                                                    {target,
>                                                     <<"
> http://localhost:5984/to/">>},
>                                                    {type,replication},
>                                                    {updated_on,1390579414}]
> [Fri, 24 Jan 2014 16:03:39 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:39 GMT] [debug] [<0.121.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:39 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET
> /from/ 200
> [Fri, 24 Jan 2014 16:03:39 GMT] [debug] [<0.93.0>] New task status for
> <0.203.0>: [{checkpointed_source_seq,0},
>                                                    {continuous,false},
>                                                    {doc_id,<<"test">>},
>                                                    {doc_write_failures,0},
>                                                    {docs_read,0},
>                                                    {docs_written,0},
>
> {missing_revisions_found,0},
>                                                    {progress,0},
>                                                    {replication_id,
>
> <<"34754f379443f9584e7595cc8de826ff">>},
>                                                    {revisions_checked,0},
>                                                    {source,
>                                                     <<"
> http://localhost:5984/from/">>},
>                                                    {source_seq,2},
>                                                    {started_on,1390579384},
>                                                    {target,
>                                                     <<"
> http://localhost:5984/to/">>},
>                                                    {type,replication},
>                                                    {updated_on,1390579419}]
> [Fri, 24 Jan 2014 16:03:44 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:44 GMT] [debug] [<0.121.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:44 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET
> /from/ 200
> [Fri, 24 Jan 2014 16:03:44 GMT] [debug] [<0.93.0>] New task status for
> <0.203.0>: [{checkpointed_source_seq,0},
>                                                    {continuous,false},
>                                                    {doc_id,<<"test">>},
>                                                    {doc_write_failures,0},
>                                                    {docs_read,0},
>                                                    {docs_written,0},
>
> {missing_revisions_found,0},
>                                                    {progress,0},
>                                                    {replication_id,
>
> <<"34754f379443f9584e7595cc8de826ff">>},
>                                                    {revisions_checked,0},
>                                                    {source,
>                                                     <<"
> http://localhost:5984/from/">>},
>                                                    {source_seq,2},
>                                                    {started_on,1390579384},
>                                                    {target,
>                                                     <<"
> http://localhost:5984/to/">>},
>                                                    {type,replication},
>                                                    {updated_on,1390579424}]
> [Fri, 24 Jan 2014 16:03:49 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:49 GMT] [debug] [<0.121.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:49 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET
> /from/ 200
> [Fri, 24 Jan 2014 16:03:49 GMT] [debug] [<0.93.0>] New task status for
> <0.203.0>: [{checkpointed_source_seq,0},
>                                                    {continuous,false},
>                                                    {doc_id,<<"test">>},
>                                                    {doc_write_failures,0},
>                                                    {docs_read,0},
>                                                    {docs_written,0},
>
> {missing_revisions_found,0},
>                                                    {progress,0},
>                                                    {replication_id,
>
> <<"34754f379443f9584e7595cc8de826ff">>},
>                                                    {revisions_checked,0},
>                                                    {source,
>                                                     <<"
> http://localhost:5984/from/">>},
>                                                    {source_seq,2},
>                                                    {started_on,1390579384},
>                                                    {target,
>                                                     <<"
> http://localhost:5984/to/">>},
>                                                    {type,replication},
>                                                    {updated_on,1390579429}]
> [Fri, 24 Jan 2014 16:03:54 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:54 GMT] [debug] [<0.121.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:54 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET
> /from/ 200
> [Fri, 24 Jan 2014 16:03:54 GMT] [debug] [<0.93.0>] New task status for
> <0.203.0>: [{checkpointed_source_seq,0},
>                                                    {continuous,false},
>                                                    {doc_id,<<"test">>},
>                                                    {doc_write_failures,0},
>                                                    {docs_read,0},
>                                                    {docs_written,0},
>
> {missing_revisions_found,0},
>                                                    {progress,0},
>                                                    {replication_id,
>
> <<"34754f379443f9584e7595cc8de826ff">>},
>                                                    {revisions_checked,0},
>                                                    {source,
>                                                     <<"
> http://localhost:5984/from/">>},
>                                                    {source_seq,2},
>                                                    {started_on,1390579384},
>                                                    {target,
>                                                     <<"
> http://localhost:5984/to/">>},
>                                                    {type,replication},
>                                                    {updated_on,1390579434}]
> [Fri, 24 Jan 2014 16:03:59 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:03:59 GMT] [debug] [<0.121.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:03:59 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET
> /from/ 200
> [Fri, 24 Jan 2014 16:03:59 GMT] [debug] [<0.93.0>] New task status for
> <0.203.0>: [{checkpointed_source_seq,0},
>                                                    {continuous,false},
>                                                    {doc_id,<<"test">>},
>                                                    {doc_write_failures,0},
>                                                    {docs_read,0},
>                                                    {docs_written,0},
>
> {missing_revisions_found,0},
>                                                    {progress,0},
>                                                    {replication_id,
>
> <<"34754f379443f9584e7595cc8de826ff">>},
>                                                    {revisions_checked,0},
>                                                    {source,
>                                                     <<"
> http://localhost:5984/from/">>},
>                                                    {source_seq,2},
>                                                    {started_on,1390579384},
>                                                    {target,
>                                                     <<"
> http://localhost:5984/to/">>},
>                                                    {type,replication},
>                                                    {updated_on,1390579439}]
> [Fri, 24 Jan 2014 16:04:04 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:04:04 GMT] [debug] [<0.121.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:04:04 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET
> /from/ 200
> [Fri, 24 Jan 2014 16:04:04 GMT] [debug] [<0.93.0>] New task status for
> <0.203.0>: [{checkpointed_source_seq,0},
>                                                    {continuous,false},
>                                                    {doc_id,<<"test">>},
>                                                    {doc_write_failures,0},
>                                                    {docs_read,0},
>                                                    {docs_written,0},
>
> {missing_revisions_found,0},
>                                                    {progress,0},
>                                                    {replication_id,
>
> <<"34754f379443f9584e7595cc8de826ff">>},
>                                                    {revisions_checked,0},
>                                                    {source,
>                                                     <<"
> http://localhost:5984/from/">>},
>                                                    {source_seq,2},
>                                                    {started_on,1390579384},
>                                                    {target,
>                                                     <<"
> http://localhost:5984/to/">>},
>                                                    {type,replication},
>                                                    {updated_on,1390579444}]
> [Fri, 24 Jan 2014 16:04:09 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:04:09 GMT] [debug] [<0.121.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:04:09 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET
> /from/ 200
> [Fri, 24 Jan 2014 16:04:09 GMT] [debug] [<0.93.0>] New task status for
> <0.203.0>: [{checkpointed_source_seq,0},
>                                                    {continuous,false},
>                                                    {doc_id,<<"test">>},
>                                                    {doc_write_failures,0},
>                                                    {docs_read,0},
>                                                    {docs_written,0},
>
> {missing_revisions_found,0},
>                                                    {progress,0},
>                                                    {replication_id,
>
> <<"34754f379443f9584e7595cc8de826ff">>},
>                                                    {revisions_checked,0},
>                                                    {source,
>                                                     <<"
> http://localhost:5984/from/">>},
>                                                    {source_seq,2},
>                                                    {started_on,1390579384},
>                                                    {target,
>                                                     <<"
> http://localhost:5984/to/">>},
>                                                    {type,replication},
>                                                    {updated_on,1390579449}]
> [Fri, 24 Jan 2014 16:04:14 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:04:14 GMT] [debug] [<0.121.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:04:14 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET
> /from/ 200
> [Fri, 24 Jan 2014 16:04:14 GMT] [debug] [<0.93.0>] New task status for
> <0.203.0>: [{checkpointed_source_seq,0},
>                                                    {continuous,false},
>                                                    {doc_id,<<"test">>},
>                                                    {doc_write_failures,0},
>                                                    {docs_read,0},
>                                                    {docs_written,0},
>
> {missing_revisions_found,0},
>                                                    {progress,0},
>                                                    {replication_id,
>
> <<"34754f379443f9584e7595cc8de826ff">>},
>                                                    {revisions_checked,0},
>                                                    {source,
>                                                     <<"
> http://localhost:5984/from/">>},
>                                                    {source_seq,2},
>                                                    {started_on,1390579384},
>                                                    {target,
>                                                     <<"
> http://localhost:5984/to/">>},
>                                                    {type,replication},
>                                                    {updated_on,1390579454}]
> [Fri, 24 Jan 2014 16:04:16 GMT] [info] [<0.117.0>] 127.0.0.1 - - PUT
> /to/test?new_edits=false 201
> [Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.218.0>] Worker reported
> completion of seq {1,2}
> [Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.203.0>] Worker reported seq
> {1,2}, through seq was {0,0}, new through seq is {1,
>
> 2}, highest seq done was {0,
>
> 0}, new highest seq done is {1,
>
> 2}
> Seqs in progress were: [{1,2}]
> Seqs in progress are now: []
> [Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.121.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:04:16 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET
> /from/ 200
> [Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.93.0>] New task status for
> <0.203.0>: [{checkpointed_source_seq,0},
>                                                    {continuous,false},
>                                                    {doc_id,<<"test">>},
>                                                    {doc_write_failures,0},
>                                                    {docs_read,1},
>                                                    {docs_written,1},
>
> {missing_revisions_found,1},
>                                                    {progress,100},
>                                                    {replication_id,
>
> <<"34754f379443f9584e7595cc8de826ff">>},
>                                                    {revisions_checked,1},
>                                                    {source,
>                                                     <<"
> http://localhost:5984/from/">>},
>                                                    {source_seq,2},
>                                                    {started_on,1390579384},
>                                                    {target,
>                                                     <<"
> http://localhost:5984/to/">>},
>                                                    {type,replication},
>                                                    {updated_on,1390579456}]
> [Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.121.0>] 'POST'
> /from/_ensure_full_commit {1,1} from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Content-Type',"application/json"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.117.0>] 'POST'
> /to/_ensure_full_commit {1,1} from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Content-Type',"application/json"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.121.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.117.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:04:16 GMT] [info] [<0.121.0>] 127.0.0.1 - - POST
> /from/_ensure_full_commit 201
> [Fri, 24 Jan 2014 16:04:16 GMT] [info] [<0.117.0>] 127.0.0.1 - - POST
> /to/_ensure_full_commit 201
> [Fri, 24 Jan 2014 16:04:16 GMT] [info] [<0.203.0>] recording a checkpoint
> for `http://localhost:5984/from/` -> `http://localhost:5984/to/` at
> source update_seq 2
> [Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.121.0>] 'PUT'
> /from/_local/34754f379443f9584e7595cc8de826ff {1,1} from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"473"},
>           {'Content-Type',"application/json"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"},
>           {"X-Couch-Full-Commit","false"}]
> [Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.121.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:04:16 GMT] [info] [<0.121.0>] 127.0.0.1 - - PUT
> /from/_local/34754f379443f9584e7595cc8de826ff 201
> [Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.117.0>] 'PUT'
> /to/_local/34754f379443f9584e7595cc8de826ff {1,1} from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"473"},
>           {'Content-Type',"application/json"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"},
>           {"X-Couch-Full-Commit","false"}]
> [Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.117.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:04:16 GMT] [info] [<0.117.0>] 127.0.0.1 - - PUT
> /to/_local/34754f379443f9584e7595cc8de826ff 201
> [Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"application/json"},
>           {'Content-Length',"0"},
>           {'Host',"localhost:5984"},
>           {'User-Agent',"CouchDB/1.5.0"}]
> [Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.121.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:04:16 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET
> /from/ 200
> [Fri, 24 Jan 2014 16:04:16 GMT] [info] [<0.114.0>] 127.0.0.1 - - POST
> /_replicate 200
> [Fri, 24 Jan 2014 16:17:27 GMT] [debug] [<0.241.0>] 'DELETE' /from {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"*/*"},
>           {'Authorization',"Basic YWRtaW46YWRtaW4="},
>           {'Host',"127.0.0.1:5984"},
>           {'User-Agent',"curl/7.31.0"}]
> [Fri, 24 Jan 2014 16:17:27 GMT] [debug] [<0.241.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:17:27 GMT] [info] [<0.241.0>] 127.0.0.1 - - DELETE
> /from 200
> [Fri, 24 Jan 2014 16:17:27 GMT] [debug] [<0.120.0>] 'DELETE' /to {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"*/*"},
>           {'Authorization',"Basic YWRtaW46YWRtaW4="},
>           {'Host',"127.0.0.1:5984"},
>           {'User-Agent',"curl/7.31.0"}]
> [Fri, 24 Jan 2014 16:17:27 GMT] [debug] [<0.120.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:17:27 GMT] [info] [<0.120.0>] 127.0.0.1 - - DELETE
> /to 200
> [Fri, 24 Jan 2014 16:17:27 GMT] [debug] [<0.118.0>] 'PUT' /from {1,1} from
> "127.0.0.1"
> Headers: [{'Accept',"*/*"},
>           {'Authorization',"Basic YWRtaW46YWRtaW4="},
>           {'Host',"127.0.0.1:5984"},
>           {'User-Agent',"curl/7.31.0"}]
> [Fri, 24 Jan 2014 16:17:27 GMT] [debug] [<0.118.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:17:27 GMT] [info] [<0.118.0>] 127.0.0.1 - - PUT /from
> 201
> [Fri, 24 Jan 2014 16:17:27 GMT] [debug] [<0.116.0>] 'PUT' /to {1,1} from
> "127.0.0.1"
> Headers: [{'Accept',"*/*"},
>           {'Authorization',"Basic YWRtaW46YWRtaW4="},
>           {'Host',"127.0.0.1:5984"},
>           {'User-Agent',"curl/7.31.0"}]
> [Fri, 24 Jan 2014 16:17:27 GMT] [debug] [<0.116.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:17:27 GMT] [info] [<0.116.0>] 127.0.0.1 - - PUT /to
> 201
> [Fri, 24 Jan 2014 16:17:27 GMT] [debug] [<0.113.0>] 'PUT' /from/test {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"*/*"},
>           {'Authorization',"Basic YWRtaW46YWRtaW4="},
>           {'Content-Length',"16"},
>           {'Content-Type',"application/x-www-form-urlencoded"},
>           {'Host',"127.0.0.1:5984"},
>           {'User-Agent',"curl/7.31.0"}]
> [Fri, 24 Jan 2014 16:17:27 GMT] [debug] [<0.113.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:17:27 GMT] [info] [<0.113.0>] 127.0.0.1 - - PUT
> /from/test 201
> [Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.112.0>] 'PUT'
> /from/test/x937?rev=1-23a888c74ba58fe20dc0d424133750bb {1,
>
> 1} from "127.0.0.1"
> Headers: [{'Accept',"*/*"},
>           {'Content-Length',"4185522"},
>           {'Content-Type',"application/octet-stream"},
>           {"Expect","100-continue"},
>           {'Host',"127.0.0.1:5984"},
>           {'User-Agent',"curl/7.31.0"}]
> [Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.112.0>] OAuth Params: [{"rev",
>                                     "1-23a888c74ba58fe20dc0d424133750bb"}]
> [Fri, 24 Jan 2014 16:17:28 GMT] [info] [<0.112.0>] 127.0.0.1 - - PUT
> /from/test/x937?rev=1-23a888c74ba58fe20dc0d424133750bb 201
> [Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.123.0>] 'PUT'
> /_replicator/test_slow {1,1} from "127.0.0.1"
> Headers: [{'Accept',"*/*"},
>           {'Authorization',"Basic YWRtaW46YWRtaW4="},
>           {'Content-Length',"31"},
>           {'Content-Type',"application/x-www-form-urlencoded"},
>           {'Host',"127.0.0.1:5984"},
>           {'User-Agent',"curl/7.31.0"}]
> [Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.123.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1148.0>] OS Process Start ::
> #Port<0.5880>
> [Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.104.0>] Teach ddoc to new proc
> {proc,<0.1148.0>,<<"javascript">>,
>                                             [],
>                                             {couch_os_process,prompt},
>                                             {couch_os_process,set_timeout},
>                                             {couch_os_process,stop}} with
> DDocKey: {<<"_design/_replicator">>,
>
> <<"1-5bfa2c99eefe2b2eb4962db50aa3cfd4">>}
> [Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1148.0>] OS Process
> #Port<0.5880> Input  ::
> ["ddoc","new","_design/_replicator",{"_id":"_design/_replicator","_rev":"1-5bfa2c99eefe2b2eb4962db50aa3cfd4","language":"javascript","validate_doc_update":"\n
> function(newDoc, oldDoc, userCtx) {\n        function
> reportError(error_msg) {\n            log('Error writing document `' +
> newDoc._id +\n                '\\' to the replicator database: ' +
> error_msg);\n            throw({forbidden: error_msg});\n
> }\n\n        function validateEndpoint(endpoint, fieldName) {\n
> if ((typeof endpoint !== 'string') &&\n                ((typeof endpoint
> !== 'object') || (endpoint === null))) {\n\n
> reportError('The `' + fieldName + '\\' property must exist'
> +\n                    ' and be either a string or an
>  object.');\n            }\n\n            if (typeof endpoint ===
> 'object') {\n                if ((typeof endpoint.url !== 'string') ||
> !endpoint.url) {\n                    reportError('The url property must
> exist in the `' +\n                        fieldName + '\\' field and must
> be a non-empty string.');\n                }\n\n                if ((typeof
> endpoint.auth !== 'undefined') &&\n                    ((typeof
> endpoint.auth !== 'object') ||\n                        endpoint.auth ===
> null)) {\n\n                    reportError('`' + fieldName
> +\n                        '.auth\\' must be a non-null
> object.');\n                }\n\n                if ((typeof
> endpoint.headers !== 'undefined')
>  &&\n                    ((typeof endpoint.headers !== 'object')
> ||\n                        endpoint.headers === null))
> {\n\n                    reportError('`' + fieldName
> +\n                        '.headers\\' must be a non-null
> object.');\n                }\n            }\n        }\n\n        var
> isReplicator = (userCtx.roles.indexOf('_replicator') >= 0);\n        var
> isAdmin = (userCtx.roles.indexOf('_admin') >= 0);\n\n        if (oldDoc &&
> !newDoc._deleted && !isReplicator &&\n
> (oldDoc._replication_state === 'triggered')) {\n
> reportError('Only the replicator can edit replication documents '
> +\n                'that are in the triggered state.');\n
> }\n\n        if (!newDoc._deleted) {\n
>  validateEndpoint(newDoc.source, 'source');\n
> validateEndpoint(newDoc.target, 'target');\n\n            if ((typeof
> newDoc.create_target !== 'undefined') &&\n                (typeof
> newDoc.create_target !== 'boolean')) {\n\n                reportError('The
> `create_target\\' field must be a boolean.');\n            }\n\n
> if ((typeof newDoc.continuous !== 'undefined') &&\n                (typeof
> newDoc.continuous !== 'boolean')) {\n\n                reportError('The
> `continuous\\' field must be a boolean.');\n            }\n\n            if
> ((typeof newDoc.doc_ids !== 'undefined') &&\n
> !isArray(newDoc.doc_ids)) {\n\n                reportError('The `doc_ids\\'
> field must be an array of strings.');\n            }\n\n            if
> ((typeof
>  newDoc.filter !== 'undefined') &&\n                ((typeof newDoc.filter
> !== 'string') || !newDoc.filter)) {\n\n                reportError('The
> `filter\\' field must be a non-empty string.');\n
> }\n\n            if ((typeof newDoc.query_params !== 'undefined')
> &&\n                ((typeof newDoc.query_params !== 'object')
> ||\n                    newDoc.query_params === null)) {\n\n
> reportError('The `query_params\\' field must be an object.');\n
> }\n\n            if (newDoc.user_ctx) {\n                var user_ctx =
> newDoc.user_ctx;\n\n                if ((typeof user_ctx !== 'object') ||
> (user_ctx === null)) {\n                    reportError('The `user_ctx\\'
> property must be a ' +\n                        'non-null
>  object.');\n                }\n\n                if (!(user_ctx.name ===
> null ||\n                    (typeof user_ctx.name === 'undefined')
> ||\n                    ((typeof user_ctx.name === 'string')
> &&\n                        user_ctx.name.length > 0)))
> {\n\n                    reportError('The `user_ctx.name\\' property must
> be a ' +\n                        'non-empty string or
> null.');\n                }\n\n                if (!isAdmin && (
> user_ctx.name !== userCtx.name)) {\n                    reportError('The
> given `user_ctx.name\\' is not valid');\n
> }\n\n                if (user_ctx.roles && !isArray(user_ctx.roles))
> {\n                    reportError('The `user_ctx.roles\\' property must be
> '
>  +\n                        'an array of strings.');\n
> }\n\n                if (!isAdmin && user_ctx.roles) {\n
> for (var i = 0; i < user_ctx.roles.length; i++) {\n
> var role = user_ctx.roles[i];\n\n                        if (typeof role
> !== 'string' || role.length === 0) {\n
> reportError('Roles must be non-empty strings.');\n
> }\n                        if (userCtx.roles.indexOf(role) === -1)
> {\n                            reportError('Invalid role (`' + role
> +\n                                '\\') in the
> `user_ctx\\'');\n
>  }\n                    }\n                }\n            } else
> {\n                if (!isAdmin) {\n                    reportError('The
> `user_ctx\\' property is missing (it is ' +\n
> 'optional for admins only).');\n                }\n            }\n        }
> else {\n            if (!isAdmin) {\n                if (!oldDoc.user_ctx
> || (oldDoc.user_ctx.name !== userCtx.name)) {\n
> reportError('Replication documents can only be deleted by '
> +\n                        'admins or by the users who created
> them.');\n                }\n            }\n        }\n    }\n"}]
> [Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1148.0>] OS Process
> #Port<0.5880> Output :: true
> [Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1148.0>] OS Process
> #Port<0.5880> Input  :: ["reset",{"reduce_limit":true,"timeout":600000}]
> [Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1148.0>] OS Process
> #Port<0.5880> Output :: true
> [Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1148.0>] OS Process
> #Port<0.5880> Input  ::
> ["ddoc","_design/_replicator",["validate_doc_update"],[{"_id":"test_slow","source":"from","target":"to","owner":"admin","_revisions":{"start":0,"ids":[]}},null,{"db":"_replicator","name":"admin","roles":["_admin"]},{}]]
> [Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1148.0>] OS Process
> #Port<0.5880> Output :: 1
> [Fri, 24 Jan 2014 16:17:28 GMT] [info] [<0.123.0>] 127.0.0.1 - - PUT
> /_replicator/test_slow 201
> [Fri, 24 Jan 2014 16:17:28 GMT] [info] [<0.141.0>] Attempting to start
> replication `2c7e8c1e1f8e0dde2e29b03395320da4` (document `test_slow`).
> [Fri, 24 Jan 2014 16:17:28 GMT] [info] [<0.1151.0>] Replication
> `"2c7e8c1e1f8e0dde2e29b03395320da4"` is using:
>     4 worker processes
>     a worker batch size of 500
>     20 HTTP connections
>     a connection timeout of 30000 milliseconds
>     10 retries per request
>     socket options are: [{keepalive,true},{nodelay,false}]
> [Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1151.0>] Worker pids are:
> [<0.1157.0>,<0.1158.0>,<0.1159.0>,
>                                        <0.1160.0>]
> [Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1157.0>] Worker flushing doc
> with attachments
> [Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.104.0>] DDocProc found for
> DDocKey: {<<"_design/_replicator">>,
>
> <<"1-5bfa2c99eefe2b2eb4962db50aa3cfd4">>}
> [Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1148.0>] OS Process
> #Port<0.5880> Input  :: ["reset",{"reduce_limit":true,"timeout":600000}]
> [Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1148.0>] OS Process
> #Port<0.5880> Output :: true
> [Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1148.0>] OS Process
> #Port<0.5880> Input  ::
>
>  ["ddoc","_design/_replicator",["validate_doc_update"],[{"_id":"test_slow","_rev":"9-e8771f3a7da376bf5ec7de6d0621e094","source":"from","target":"to","owner":"admin","_replication_state":"triggered","_replication_state_time":"2014-01-24T10:17:28-06:00","_replication_id":"2c7e8c1e1f8e0dde2e29b03395320da4","_revisions":{"start":9,"ids":["e8771f3a7da376bf5ec7de6d0621e094","bc6b5a78f5aca5df6186f319bdfff864","b13beb5b518d56958c6f686712512608","0fceb2c155368db6f57f9236244f92ee","c458b4d077f9a36c2aa5f90ffad0722e","c8ce2f3c769aa5080587f2223c5a2fa1","eecc4a3518160cd983b2bd7f01f3b166","7b75ee746380c1a791f5e9f2fb4a2386","5c3c9988bbf8fd048bdde2d7ecab7dd6"]}},{"_id":"test_slow","_rev":"9-e8771f3a7da376bf5ec7de6d0621e094","source":"from","target":"to","owner":"admin","_revisions":{"start":9,"ids":["e8771f3a7da376bf5ec7de6d0621e094","bc6b5a78f5aca5df6186f319bdfff864","b13beb5b518d56958c6f686712512608","0fceb2c155368db6f57f9236244f92ee","c458b4d077f9a36c2aa5f90ffad0722e
>
> ","c8ce2f3c769aa5080587f2223c5a2fa1","eecc4a3518160cd983b2bd7f01f3b166","7b75ee746380c1a791f5e9f2fb4a2386","5c3c9988bbf8fd048bdde2d7ecab7dd6"]}},{"db":"_replicator","name":null,"roles":["_admin","_replicator"]},{}]]
> [Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1148.0>] OS Process
> #Port<0.5880> Output :: 1
> [Fri, 24 Jan 2014 16:17:28 GMT] [info] [<0.1151.0>] Document `test_slow`
> triggered replication `2c7e8c1e1f8e0dde2e29b03395320da4`
> [Fri, 24 Jan 2014 16:17:28 GMT] [info] [<0.1150.0>] starting new
> replication `2c7e8c1e1f8e0dde2e29b03395320da4` at <0.1151.0> (`from` ->
> `to`)
> [Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1157.0>] Worker reported
> completion of seq {1,2}
> [Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1151.0>] Worker reported seq
> {1,2}, through seq was {0,0}, new through seq is {1,
>
> 2}, highest seq done was {0,
>
> 0}, new highest seq done is {1,
>
> 2}
> Seqs in progress were: [{1,2}]
> Seqs in progress are now: []
> [Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.93.0>] New task status for
> <0.1151.0>: [{checkpointed_source_seq,
>                                                      0},
>                                                     {continuous,false},
>
> {doc_id,<<"test_slow">>},
>                                                     {doc_write_failures,0},
>                                                     {docs_read,1},
>                                                     {docs_written,1},
>
> {missing_revisions_found,
>                                                      1},
>                                                     {progress,100},
>                                                     {replication_id,
>
> <<"2c7e8c1e1f8e0dde2e29b03395320da4">>},
>                                                     {revisions_checked,1},
>                                                     {source,<<"from">>},
>                                                     {source_seq,2},
>
> {started_on,1390580248},
>                                                     {target,<<"to">>},
>                                                     {type,replication},
>
> {updated_on,1390580248}]
> [Fri, 24 Jan 2014 16:17:30 GMT] [info] [<0.1151.0>] recording a checkpoint
> for `from` -> `to` at source update_seq 2
> [Fri, 24 Jan 2014 16:17:30 GMT] [debug] [<0.93.0>] New task status for
> <0.1151.0>: [{checkpointed_source_seq,
>                                                      2},
>                                                     {continuous,false},
>
> {doc_id,<<"test_slow">>},
>                                                     {doc_write_failures,0},
>                                                     {docs_read,1},
>                                                     {docs_written,1},
>
> {missing_revisions_found,
>                                                      1},
>                                                     {progress,100},
>                                                     {replication_id,
>
> <<"2c7e8c1e1f8e0dde2e29b03395320da4">>},
>                                                     {revisions_checked,1},
>                                                     {source,<<"from">>},
>                                                     {source_seq,2},
>
> {started_on,1390580248},
>                                                     {target,<<"to">>},
>                                                     {type,replication},
>
> {updated_on,1390580250}]
> [Fri, 24 Jan 2014 16:17:30 GMT] [debug] [<0.104.0>] DDocProc found for
> DDocKey: {<<"_design/_replicator">>,
>
> <<"1-5bfa2c99eefe2b2eb4962db50aa3cfd4">>}
> [Fri, 24 Jan 2014 16:17:30 GMT] [debug] [<0.1148.0>] OS Process
> #Port<0.5880> Input  :: ["reset",{"reduce_limit":true,"timeout":600000}]
> [Fri, 24 Jan 2014 16:17:30 GMT] [debug] [<0.1148.0>] OS Process
> #Port<0.5880> Output :: true
> [Fri, 24 Jan 2014 16:17:30 GMT] [debug] [<0.1148.0>] OS Process
> #Port<0.5880> Input  ::
>
>  ["ddoc","_design/_replicator",["validate_doc_update"],[{"_id":"test_slow","_rev":"10-5ec32fc496eaa6af8e0af0ff9e75ec16","source":"from","target":"to","owner":"admin","_replication_state":"completed","_replication_state_time":"2014-01-24T10:17:30-06:00","_replication_id":"2c7e8c1e1f8e0dde2e29b03395320da4","_replication_stats":{"revisions_checked":1,"missing_revisions_found":1,"docs_read":1,"docs_written":1,"doc_write_failures":0,"checkpointed_source_seq":2},"_revisions":{"start":10,"ids":["5ec32fc496eaa6af8e0af0ff9e75ec16","e8771f3a7da376bf5ec7de6d0621e094","bc6b5a78f5aca5df6186f319bdfff864","b13beb5b518d56958c6f686712512608","0fceb2c155368db6f57f9236244f92ee","c458b4d077f9a36c2aa5f90ffad0722e","c8ce2f3c769aa5080587f2223c5a2fa1","eecc4a3518160cd983b2bd7f01f3b166","7b75ee746380c1a791f5e9f2fb4a2386","5c3c9988bbf8fd048bdde2d7ecab7dd6"]}},{"_id":"test_slow","_rev":"10-5ec32fc496eaa6af8e0af0ff9e75ec16","source":"from","target":"to","owner":"admin","_replicati
>
> on_state":"triggered","_replication_state_time":"2014-01-24T10:17:28-06:00","_replication_id":"2c7e8c1e1f8e0dde2e29b03395320da4","_revisions":{"start":10,"ids":["5ec32fc496eaa6af8e0af0ff9e75ec16","e8771f3a7da376bf5ec7de6d0621e094","bc6b5a78f5aca5df6186f319bdfff864","b13beb5b518d56958c6f686712512608","0fceb2c155368db6f57f9236244f92ee","c458b4d077f9a36c2aa5f90ffad0722e","c8ce2f3c769aa5080587f2223c5a2fa1","eecc4a3518160cd983b2bd7f01f3b166","7b75ee746380c1a791f5e9f2fb4a2386","5c3c9988bbf8fd048bdde2d7ecab7dd6"]}},{"db":"_replicator","name":null,"roles":["_admin","_replicator"]},{}]]
> [Fri, 24 Jan 2014 16:17:30 GMT] [debug] [<0.1148.0>] OS Process
> #Port<0.5880> Output :: 1
> [Fri, 24 Jan 2014 16:17:30 GMT] [info] [<0.1151.0>] Replication
> `2c7e8c1e1f8e0dde2e29b03395320da4` finished (triggered by document
> `test_slow`)
> [Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1119.0>] 'DELETE' /from {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"*/*"},
>           {'Authorization',"Basic YWRtaW46YWRtaW4="},
>           {'Host',"127.0.0.1:5984"},
>           {'User-Agent',"curl/7.31.0"}]
> [Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1119.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:26:38 GMT] [info] [<0.1119.0>] 127.0.0.1 - - DELETE
> /from 200
> [Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1122.0>] 'DELETE' /to {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"*/*"},
>           {'Authorization',"Basic YWRtaW46YWRtaW4="},
>           {'Host',"127.0.0.1:5984"},
>           {'User-Agent',"curl/7.31.0"}]
> [Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1122.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:26:38 GMT] [info] [<0.1122.0>] 127.0.0.1 - - DELETE
> /to 200
> [Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1124.0>] 'PUT' /from {1,1}
> from "127.0.0.1"
> Headers: [{'Accept',"*/*"},
>           {'Authorization',"Basic YWRtaW46YWRtaW4="},
>           {'Host',"127.0.0.1:5984"},
>           {'User-Agent',"curl/7.31.0"}]
> [Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1124.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:26:38 GMT] [info] [<0.1124.0>] 127.0.0.1 - - PUT
> /from 201
> [Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1134.0>] 'PUT' /to {1,1} from
> "127.0.0.1"
> Headers: [{'Accept',"*/*"},
>           {'Authorization',"Basic YWRtaW46YWRtaW4="},
>           {'Host',"127.0.0.1:5984"},
>           {'User-Agent',"curl/7.31.0"}]
> [Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1134.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:26:38 GMT] [info] [<0.1134.0>] 127.0.0.1 - - PUT /to
> 201
> [Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1144.0>] 'PUT' /from/test
> {1,1} from "127.0.0.1"
> Headers: [{'Accept',"*/*"},
>           {'Authorization',"Basic YWRtaW46YWRtaW4="},
>           {'Content-Length',"16"},
>           {'Content-Type',"application/x-www-form-urlencoded"},
>           {'Host',"127.0.0.1:5984"},
>           {'User-Agent',"curl/7.31.0"}]
> [Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1144.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:26:38 GMT] [info] [<0.1144.0>] 127.0.0.1 - - PUT
> /from/test 201
> [Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1145.0>] 'PUT'
> /from/test/x937?rev=1-23a888c74ba58fe20dc0d424133750bb {1,
>
> 1} from "127.0.0.1"
> Headers: [{'Accept',"*/*"},
>           {'Content-Length',"4185522"},
>           {'Content-Type',"application/octet-stream"},
>           {"Expect","100-continue"},
>           {'Host',"127.0.0.1:5984"},
>           {'User-Agent',"curl/7.31.0"}]
> [Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1145.0>] OAuth Params: [{"rev",
>                                      "1-23a888c74ba58fe20dc0d424133750bb"}]
> [Fri, 24 Jan 2014 16:26:38 GMT] [info] [<0.1145.0>] 127.0.0.1 - - PUT
> /from/test/x937?rev=1-23a888c74ba58fe20dc0d424133750bb 201
> [Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1147.0>] 'POST' /_replicate
> {1,1} from "127.0.0.1"
> Headers: [{'Accept',"*/*"},
>           {'Authorization',"Basic YWRtaW46YWRtaW4="},
>           {'Content-Length',"31"},
>           {'Content-Type',"application/json"},
>           {'Host',"127.0.0.1:5984"},
>           {'User-Agent',"curl/7.31.0"}]
> [Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1147.0>] OAuth Params: []
> [Fri, 24 Jan 2014 16:26:38 GMT] [info] [<0.1744.0>] Replication
> `"32b3b1ede908033172b54853f9031d30"` is using:
>     4 worker processes
>     a worker batch size of 500
>     20 HTTP connections
>     a connection timeout of 30000 milliseconds
>     10 retries per request
>     socket options are: [{keepalive,true},{nodelay,false}]
> [Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1744.0>] Worker pids are:
> [<0.1750.0>,<0.1751.0>,<0.1752.0>,
>                                        <0.1753.0>]
> [Fri, 24 Jan 2014 16:26:38 GMT] [info] [<0.1147.0>] starting new
> replication `32b3b1ede908033172b54853f9031d30` at <0.1744.0> (`from` ->
> `to`)
> [Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1750.0>] Worker flushing doc
> with attachments
> [Fri, 24 Jan 2014 16:26:39 GMT] [debug] [<0.1750.0>] Worker reported
> completion of seq {1,2}
> [Fri, 24 Jan 2014 16:26:39 GMT] [debug] [<0.1744.0>] Worker reported seq
> {1,2}, through seq was {0,0}, new through seq is {1,
>
> 2}, highest seq done was {0,
>
> 0}, new highest seq done is {1,
>
> 2}
> Seqs in progress were: [{1,2}]
> Seqs in progress are now: []
> [Fri, 24 Jan 2014 16:26:39 GMT] [debug] [<0.93.0>] New task status for
> <0.1744.0>: [{checkpointed_source_seq,
>                                                      0},
>                                                     {continuous,false},
>                                                     {doc_id,null},
>                                                     {doc_write_failures,0},
>                                                     {docs_read,1},
>                                                     {docs_written,1},
>
> {missing_revisions_found,
>                                                      1},
>                                                     {progress,100},
>                                                     {replication_id,
>
> <<"32b3b1ede908033172b54853f9031d30">>},
>                                                     {revisions_checked,1},
>                                                     {source,<<"from">>},
>                                                     {source_seq,2},
>
> {started_on,1390580798},
>                                                     {target,<<"to">>},
>                                                     {type,replication},
>
> {updated_on,1390580799}]
> [Fri, 24 Jan 2014 16:26:40 GMT] [info] [<0.1744.0>] recording a checkpoint
> for `from` -> `to` at source update_seq 2
> [Fri, 24 Jan 2014 16:26:40 GMT] [debug] [<0.93.0>] New task status for
> <0.1744.0>: [{checkpointed_source_seq,
>                                                      2},
>                                                     {continuous,false},
>                                                     {doc_id,null},
>                                                     {doc_write_failures,0},
>                                                     {docs_read,1},
>                                                     {docs_written,1},
>
> {missing_revisions_found,
>                                                      1},
>                                                     {progress,100},
>                                                     {replication_id,
>
> <<"32b3b1ede908033172b54853f9031d30">>},
>                                                     {revisions_checked,1},
>                                                     {source,<<"from">>},
>                                                     {source_seq,2},
>
> {started_on,1390580798},
>                                                     {target,<<"to">>},
>                                                     {type,replication},
>
> {updated_on,1390580800}]
> [Fri, 24 Jan 2014 16:26:40 GMT] [info] [<0.1147.0>] 127.0.0.1 - - POST
> /_replicate 200
>

Re: Replication of attachment is extremely slow.. LOGGED INFORMATION

Posted by Nick North <no...@gmail.com>.
Depends if we've missed the boat on getting it in to 1.6, which is due very
soon. The original decision was not to include the patch, but no-one knew
that it fixed any significant problems then. I'll raise it on the dev list.

Nick


On 25 January 2014 01:21, Scott Weber <sc...@sbcglobal.net> wrote:

> Awesome Dave/Nick.
>
> We are using the binaries, when can we expect that they will be available?
>
> Although I can build from the source if I need to.  But I would need to
> install GIT, and all other dependencies that are needed.
>
> -Scott
>
>
>
>
> ----- Original Message -----
> From: Paul Davis <pa...@gmail.com>
> To: "user@couchdb.apache.org" <us...@couchdb.apache.org>
> Cc: Rian R. Maloney <ri...@yahoo.com>
> Sent: Friday, January 24, 2014 6:41 PM
> Subject: Re: Replication of attachment is extremely slow.. LOGGED
> INFORMATION
>
> Yeah. I happened to be staring at that function thinking "This looks
> really slow..." and remembered the recent PR. Turns out Nick had
> already done all the work fixing it. For reference I'm seeing a
> roughly 20x speedup on the HTTP based attachment replication.
>
> On Fri, Jan 24, 2014 at 4:37 PM, Adam Kocoloski
> <ad...@gmail.com> wrote:
> > Well how about that. Go Nick!
> >
> > Adam
> >
> >> On Jan 24, 2014, at 7:31 PM, Paul Davis <pa...@gmail.com>
> wrote:
> >>
> >> Interesting note, this is fixed by applying the patch to COUCHDB-1953.
> >>
> >>> On Fri, Jan 24, 2014 at 3:03 PM, Rian R. Maloney <
> rian.maloney@yahoo.com> wrote:
> >>> Will do Dave. Thanks again for the help
> >>>
> >>> Im away from desk at the moment but - Ive recreated this on 2 windows
> 7 pcs and a MAC OS X mini.
> >>>
> >>> Im putting together a cleansed file - this format is used for check
> image exchange between banks so I need to remove personal data.
> >>>
> >>> Thanks
> >>> Rian
> >>>
> >>>
> >>>
> >>> On Friday, January 24, 2014 4:51 PM, Paul Davis <
> paul.joseph.davis@gmail.com> wrote:
> >>>
> >>> Duplicated locally. Poking around at debugging what's going on.
> >>>
> >>>
> >>>> On Fri, Jan 24, 2014 at 1:08 PM, Scott Weber <
> scotty2541@sbcglobal.net> wrote:
> >>>> Thanks. I'll remember that for next time.
> >>>>
> >>>> Hopefully, there won't be a next time for a while :-)
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> ----- Original Message -----
> >>>> From: Jens Alfke <je...@couchbase.com>
> >>>> To: "user@couchdb.apache.org" <us...@couchdb.apache.org>; Scott Weber
> <sc...@sbcglobal.net>
> >>>> Cc: "replication@couchdb.apache.org" <re...@couchdb.apache.org>
> >>>> Sent: Friday, January 24, 2014 2:07 PM
> >>>> Subject: Re: Replication of attachment is extremely slow.. LOGGED
> INFORMATION
> >>>>
> >>>>
> >>>>> On Jan 24, 2014, at 11:41 AM, Scott Weber <sc...@sbcglobal.net>
> wrote:
> >>>>>
> >>>>> I do not see the log attached. It must have been stripped by the
> list server.
> >>>>> I will copy/paste it to the bottom of this email.  It is 1024 lines.
> >>>>
> >>>> Speaking of netiquette :) please don't paste a thousand lines of logs
> into a message. It messes up the threaded view of the conversation.
> >>>>
> >>>> The listserv running this group is really MIME-unfriendly (ironic,
> considering this thread) so attachments are out; but nowadays we have lots
> of nice online tools like Pastebin and Gist for hosting big blobs of text
> that you can then post a URL to.
> >>>>
> >>>> —Jens
>
>

Re: Replication of attachment is extremely slow.. LOGGED INFORMATION

Posted by Scott Weber <sc...@sbcglobal.net>.
Awesome Dave/Nick.

We are using the binaries, when can we expect that they will be available?

Although I can build from the source if I need to.  But I would need to install GIT, and all other dependencies that are needed.

-Scott




----- Original Message -----
From: Paul Davis <pa...@gmail.com>
To: "user@couchdb.apache.org" <us...@couchdb.apache.org>
Cc: Rian R. Maloney <ri...@yahoo.com>
Sent: Friday, January 24, 2014 6:41 PM
Subject: Re: Replication of attachment is extremely slow.. LOGGED INFORMATION

Yeah. I happened to be staring at that function thinking "This looks
really slow..." and remembered the recent PR. Turns out Nick had
already done all the work fixing it. For reference I'm seeing a
roughly 20x speedup on the HTTP based attachment replication.

On Fri, Jan 24, 2014 at 4:37 PM, Adam Kocoloski
<ad...@gmail.com> wrote:
> Well how about that. Go Nick!
>
> Adam
>
>> On Jan 24, 2014, at 7:31 PM, Paul Davis <pa...@gmail.com> wrote:
>>
>> Interesting note, this is fixed by applying the patch to COUCHDB-1953.
>>
>>> On Fri, Jan 24, 2014 at 3:03 PM, Rian R. Maloney <ri...@yahoo.com> wrote:
>>> Will do Dave. Thanks again for the help
>>>
>>> Im away from desk at the moment but - Ive recreated this on 2 windows 7 pcs and a MAC OS X mini.
>>>
>>> Im putting together a cleansed file - this format is used for check image exchange between banks so I need to remove personal data.
>>>
>>> Thanks
>>> Rian
>>>
>>>
>>>
>>> On Friday, January 24, 2014 4:51 PM, Paul Davis <pa...@gmail.com> wrote:
>>>
>>> Duplicated locally. Poking around at debugging what's going on.
>>>
>>>
>>>> On Fri, Jan 24, 2014 at 1:08 PM, Scott Weber <sc...@sbcglobal.net> wrote:
>>>> Thanks. I'll remember that for next time.
>>>>
>>>> Hopefully, there won't be a next time for a while :-)
>>>>
>>>>
>>>>
>>>>
>>>> ----- Original Message -----
>>>> From: Jens Alfke <je...@couchbase.com>
>>>> To: "user@couchdb.apache.org" <us...@couchdb.apache.org>; Scott Weber <sc...@sbcglobal.net>
>>>> Cc: "replication@couchdb.apache.org" <re...@couchdb.apache.org>
>>>> Sent: Friday, January 24, 2014 2:07 PM
>>>> Subject: Re: Replication of attachment is extremely slow.. LOGGED INFORMATION
>>>>
>>>>
>>>>> On Jan 24, 2014, at 11:41 AM, Scott Weber <sc...@sbcglobal.net> wrote:
>>>>>
>>>>> I do not see the log attached. It must have been stripped by the list server.
>>>>> I will copy/paste it to the bottom of this email.  It is 1024 lines.
>>>>
>>>> Speaking of netiquette :) please don't paste a thousand lines of logs into a message. It messes up the threaded view of the conversation.
>>>>
>>>> The listserv running this group is really MIME-unfriendly (ironic, considering this thread) so attachments are out; but nowadays we have lots of nice online tools like Pastebin and Gist for hosting big blobs of text that you can then post a URL to.
>>>>
>>>> —Jens


Re: Replication of attachment is extremely slow.. LOGGED INFORMATION

Posted by Paul Davis <pa...@gmail.com>.
Yeah. I happened to be staring at that function thinking "This looks
really slow..." and remembered the recent PR. Turns out Nick had
already done all the work fixing it. For reference I'm seeing a
roughly 20x speedup on the HTTP based attachment replication.

On Fri, Jan 24, 2014 at 4:37 PM, Adam Kocoloski
<ad...@gmail.com> wrote:
> Well how about that. Go Nick!
>
> Adam
>
>> On Jan 24, 2014, at 7:31 PM, Paul Davis <pa...@gmail.com> wrote:
>>
>> Interesting note, this is fixed by applying the patch to COUCHDB-1953.
>>
>>> On Fri, Jan 24, 2014 at 3:03 PM, Rian R. Maloney <ri...@yahoo.com> wrote:
>>> Will do Dave. Thanks again for the help
>>>
>>> Im away from desk at the moment but - Ive recreated this on 2 windows 7 pcs and a MAC OS X mini.
>>>
>>> Im putting together a cleansed file - this format is used for check image exchange between banks so I need to remove personal data.
>>>
>>> Thanks
>>> Rian
>>>
>>>
>>>
>>> On Friday, January 24, 2014 4:51 PM, Paul Davis <pa...@gmail.com> wrote:
>>>
>>> Duplicated locally. Poking around at debugging what's going on.
>>>
>>>
>>>> On Fri, Jan 24, 2014 at 1:08 PM, Scott Weber <sc...@sbcglobal.net> wrote:
>>>> Thanks. I'll remember that for next time.
>>>>
>>>> Hopefully, there won't be a next time for a while :-)
>>>>
>>>>
>>>>
>>>>
>>>> ----- Original Message -----
>>>> From: Jens Alfke <je...@couchbase.com>
>>>> To: "user@couchdb.apache.org" <us...@couchdb.apache.org>; Scott Weber <sc...@sbcglobal.net>
>>>> Cc: "replication@couchdb.apache.org" <re...@couchdb.apache.org>
>>>> Sent: Friday, January 24, 2014 2:07 PM
>>>> Subject: Re: Replication of attachment is extremely slow.. LOGGED INFORMATION
>>>>
>>>>
>>>>> On Jan 24, 2014, at 11:41 AM, Scott Weber <sc...@sbcglobal.net> wrote:
>>>>>
>>>>> I do not see the log attached. It must have been stripped by the list server.
>>>>> I will copy/paste it to the bottom of this email.  It is 1024 lines.
>>>>
>>>> Speaking of netiquette :) please don't paste a thousand lines of logs into a message. It messes up the threaded view of the conversation.
>>>>
>>>> The listserv running this group is really MIME-unfriendly (ironic, considering this thread) so attachments are out; but nowadays we have lots of nice online tools like Pastebin and Gist for hosting big blobs of text that you can then post a URL to.
>>>>
>>>> —Jens

Re: Replication of attachment is extremely slow.. LOGGED INFORMATION

Posted by Adam Kocoloski <ad...@gmail.com>.
Well how about that. Go Nick!

Adam

> On Jan 24, 2014, at 7:31 PM, Paul Davis <pa...@gmail.com> wrote:
> 
> Interesting note, this is fixed by applying the patch to COUCHDB-1953.
> 
>> On Fri, Jan 24, 2014 at 3:03 PM, Rian R. Maloney <ri...@yahoo.com> wrote:
>> Will do Dave. Thanks again for the help
>> 
>> Im away from desk at the moment but - Ive recreated this on 2 windows 7 pcs and a MAC OS X mini.
>> 
>> Im putting together a cleansed file - this format is used for check image exchange between banks so I need to remove personal data.
>> 
>> Thanks
>> Rian
>> 
>> 
>> 
>> On Friday, January 24, 2014 4:51 PM, Paul Davis <pa...@gmail.com> wrote:
>> 
>> Duplicated locally. Poking around at debugging what's going on.
>> 
>> 
>>> On Fri, Jan 24, 2014 at 1:08 PM, Scott Weber <sc...@sbcglobal.net> wrote:
>>> Thanks. I'll remember that for next time.
>>> 
>>> Hopefully, there won't be a next time for a while :-)
>>> 
>>> 
>>> 
>>> 
>>> ----- Original Message -----
>>> From: Jens Alfke <je...@couchbase.com>
>>> To: "user@couchdb.apache.org" <us...@couchdb.apache.org>; Scott Weber <sc...@sbcglobal.net>
>>> Cc: "replication@couchdb.apache.org" <re...@couchdb.apache.org>
>>> Sent: Friday, January 24, 2014 2:07 PM
>>> Subject: Re: Replication of attachment is extremely slow.. LOGGED INFORMATION
>>> 
>>> 
>>>> On Jan 24, 2014, at 11:41 AM, Scott Weber <sc...@sbcglobal.net> wrote:
>>>> 
>>>> I do not see the log attached. It must have been stripped by the list server.
>>>> I will copy/paste it to the bottom of this email.  It is 1024 lines.
>>> 
>>> Speaking of netiquette :) please don't paste a thousand lines of logs into a message. It messes up the threaded view of the conversation.
>>> 
>>> The listserv running this group is really MIME-unfriendly (ironic, considering this thread) so attachments are out; but nowadays we have lots of nice online tools like Pastebin and Gist for hosting big blobs of text that you can then post a URL to.
>>> 
>>> —Jens

Re: Replication of attachment is extremely slow.. LOGGED INFORMATION

Posted by Paul Davis <pa...@gmail.com>.
Interesting note, this is fixed by applying the patch to COUCHDB-1953.

On Fri, Jan 24, 2014 at 3:03 PM, Rian R. Maloney <ri...@yahoo.com> wrote:
> Will do Dave. Thanks again for the help
>
> Im away from desk at the moment but - Ive recreated this on 2 windows 7 pcs and a MAC OS X mini.
>
> Im putting together a cleansed file - this format is used for check image exchange between banks so I need to remove personal data.
>
> Thanks
> Rian
>
>
>
> On Friday, January 24, 2014 4:51 PM, Paul Davis <pa...@gmail.com> wrote:
>
> Duplicated locally. Poking around at debugging what's going on.
>
>
> On Fri, Jan 24, 2014 at 1:08 PM, Scott Weber <sc...@sbcglobal.net> wrote:
>> Thanks. I'll remember that for next time.
>>
>> Hopefully, there won't be a next time for a while :-)
>>
>>
>>
>>
>> ----- Original Message -----
>> From: Jens Alfke <je...@couchbase.com>
>> To: "user@couchdb.apache.org" <us...@couchdb.apache.org>; Scott Weber <sc...@sbcglobal.net>
>> Cc: "replication@couchdb.apache.org" <re...@couchdb.apache.org>
>> Sent: Friday, January 24, 2014 2:07 PM
>> Subject: Re: Replication of attachment is extremely slow.. LOGGED INFORMATION
>>
>>
>> On Jan 24, 2014, at 11:41 AM, Scott Weber <sc...@sbcglobal.net> wrote:
>>
>>> I do not see the log attached. It must have been stripped by the list server.
>>> I will copy/paste it to the bottom of this email.  It is 1024 lines.
>>
>> Speaking of netiquette :) please don't paste a thousand lines of logs into a message. It messes up the threaded view of the conversation.
>>
>> The listserv running this group is really MIME-unfriendly (ironic, considering this thread) so attachments are out; but nowadays we have lots of nice online tools like Pastebin and Gist for hosting big blobs of text that you can then post a URL to.
>>
>> —Jens

Re: Replication of attachment is extremely slow.. LOGGED INFORMATION

Posted by "Rian R. Maloney" <ri...@yahoo.com>.
Will do Dave. Thanks again for the help

Im away from desk at the moment but - Ive recreated this on 2 windows 7 pcs and a MAC OS X mini.

Im putting together a cleansed file - this format is used for check image exchange between banks so I need to remove personal data.

Thanks
Rian



On Friday, January 24, 2014 4:51 PM, Paul Davis <pa...@gmail.com> wrote:
 
Duplicated locally. Poking around at debugging what's going on.


On Fri, Jan 24, 2014 at 1:08 PM, Scott Weber <sc...@sbcglobal.net> wrote:
> Thanks. I'll remember that for next time.
>
> Hopefully, there won't be a next time for a while :-)
>
>
>
>
> ----- Original Message -----
> From: Jens Alfke <je...@couchbase.com>
> To: "user@couchdb.apache.org" <us...@couchdb.apache.org>; Scott Weber <sc...@sbcglobal.net>
> Cc: "replication@couchdb.apache.org" <re...@couchdb.apache.org>
> Sent: Friday, January 24, 2014 2:07 PM
> Subject: Re: Replication of attachment is extremely slow.. LOGGED INFORMATION
>
>
> On Jan 24, 2014, at 11:41 AM, Scott Weber <sc...@sbcglobal.net> wrote:
>
>> I do not see the log attached. It must have been stripped by the list server.
>> I will copy/paste it to the bottom of this email.  It is 1024 lines.
>
> Speaking of netiquette :) please don't paste a thousand lines of logs into a message. It messes up the threaded view of the conversation.
>
> The listserv running this group is really MIME-unfriendly (ironic, considering this thread) so attachments are out; but nowadays we have lots of nice online tools like Pastebin and Gist for hosting big blobs of text that you can then post a URL to.
>
> —Jens

Re: Replication of attachment is extremely slow.. LOGGED INFORMATION

Posted by Paul Davis <pa...@gmail.com>.
Duplicated locally. Poking around at debugging what's going on.

On Fri, Jan 24, 2014 at 1:08 PM, Scott Weber <sc...@sbcglobal.net> wrote:
> Thanks. I'll remember that for next time.
>
> Hopefully, there won't be a next time for a while :-)
>
>
>
>
> ----- Original Message -----
> From: Jens Alfke <je...@couchbase.com>
> To: "user@couchdb.apache.org" <us...@couchdb.apache.org>; Scott Weber <sc...@sbcglobal.net>
> Cc: "replication@couchdb.apache.org" <re...@couchdb.apache.org>
> Sent: Friday, January 24, 2014 2:07 PM
> Subject: Re: Replication of attachment is extremely slow.. LOGGED INFORMATION
>
>
> On Jan 24, 2014, at 11:41 AM, Scott Weber <sc...@sbcglobal.net> wrote:
>
>> I do not see the log attached. It must have been stripped by the list server.
>> I will copy/paste it to the bottom of this email.  It is 1024 lines.
>
> Speaking of netiquette :) please don't paste a thousand lines of logs into a message. It messes up the threaded view of the conversation.
>
> The listserv running this group is really MIME-unfriendly (ironic, considering this thread) so attachments are out; but nowadays we have lots of nice online tools like Pastebin and Gist for hosting big blobs of text that you can then post a URL to.
>
> —Jens

Re: Replication of attachment is extremely slow.. LOGGED INFORMATION

Posted by Scott Weber <sc...@sbcglobal.net>.
Thanks. I'll remember that for next time.

Hopefully, there won't be a next time for a while :-)




----- Original Message -----
From: Jens Alfke <je...@couchbase.com>
To: "user@couchdb.apache.org" <us...@couchdb.apache.org>; Scott Weber <sc...@sbcglobal.net>
Cc: "replication@couchdb.apache.org" <re...@couchdb.apache.org>
Sent: Friday, January 24, 2014 2:07 PM
Subject: Re: Replication of attachment is extremely slow.. LOGGED INFORMATION


On Jan 24, 2014, at 11:41 AM, Scott Weber <sc...@sbcglobal.net> wrote:

> I do not see the log attached. It must have been stripped by the list server.
> I will copy/paste it to the bottom of this email.  It is 1024 lines.

Speaking of netiquette :) please don't paste a thousand lines of logs into a message. It messes up the threaded view of the conversation.

The listserv running this group is really MIME-unfriendly (ironic, considering this thread) so attachments are out; but nowadays we have lots of nice online tools like Pastebin and Gist for hosting big blobs of text that you can then post a URL to.

—Jens 

Re: Replication of attachment is extremely slow.. LOGGED INFORMATION

Posted by Jens Alfke <je...@couchbase.com>.
On Jan 24, 2014, at 11:41 AM, Scott Weber <sc...@sbcglobal.net> wrote:

> I do not see the log attached. It must have been stripped by the list server.
> I will copy/paste it to the bottom of this email.  It is 1024 lines.

Speaking of netiquette :) please don't paste a thousand lines of logs into a message. It messes up the threaded view of the conversation.

The listserv running this group is really MIME-unfriendly (ironic, considering this thread) so attachments are out; but nowadays we have lots of nice online tools like Pastebin and Gist for hosting big blobs of text that you can then post a URL to.

—Jens

Re: Replication of attachment is extremely slow.. LOGGED INFORMATION

Posted by Jens Alfke <je...@couchbase.com>.
On Jan 24, 2014, at 11:41 AM, Scott Weber <sc...@sbcglobal.net> wrote:

> I do not see the log attached. It must have been stripped by the list server.
> I will copy/paste it to the bottom of this email.  It is 1024 lines.

Speaking of netiquette :) please don't paste a thousand lines of logs into a message. It messes up the threaded view of the conversation.

The listserv running this group is really MIME-unfriendly (ironic, considering this thread) so attachments are out; but nowadays we have lots of nice online tools like Pastebin and Gist for hosting big blobs of text that you can then post a URL to.

—Jens

Re: Replication of attachment is extremely slow.. LOGGED INFORMATION

Posted by Scott Weber <sc...@sbcglobal.net>.
I do not see the log attached. It must have been stripped by the list server. 
I will copy/paste it to the bottom of this email.  It is 1024 lines.




----- Original Message -----
From: Scott Weber <sc...@sbcglobal.net>
To: "user@couchdb.apache.org" <us...@couchdb.apache.org>
Cc: "replication@couchdb.apache.org" <re...@couchdb.apache.org>
Sent: Friday, January 24, 2014 1:34 PM
Subject: Re: Replication of attachment is extremely slow.. LOGGED INFORMATION

We have a duplication of the problem from a cleaned installation.  And there are some interesting things in the log, but I don't know what they mean, since I am not familiar with the internals of CouchDB.

I have attached the couch log. I can send the actual file being replicated, but it is about 4Meg.  Too big to make a reasonable attachment.  And I don't think it will be of value to this issue.

As to the log, it is broken in three sections (tests), which I will outline:
In all cases, it first deletes all databases, then creates them, and adds a doc and attachment.
<1>
The first is where replication was requested via a script HTTP post.
The attachment is uploaded at line 36 - content length 4185522 bytes
The "_replicate" request is PUT at line 49.
Then a bunch of "Minor error in HTTP request" messages appear.  Not sure what that means.
Then starting at line 328 to 329, you can see 5 second gaps as it tries to "GET" from the "from" database
and a bunch of "New task status" messages are repeated (about 15 of them).
This repeats, showing 5 second pauses until line 740, where it says "POST /to/_ensure_full_commit 201"
TOTAL TIME:  16:03:03 to 16:04:16   One minute, thirteen seconds.

<2>
The next test was done using CURL, starting at line 770, it deletes the databases, and starts over.
At line 818, there is the PUT request to the _replicator db  (NOTE: This is "_replicator", not "_replicate", what is the difference?)
There are only 2 "new task status" messages, and the replication is done by at line 911
TOTAL TIME:  16:17:28 to 16:17:30   2 seconds.

<3>
The next test was done using curl as well. It is a repeat of the second test, except the replication request was PUT to "_replicate" rather than "_replicator", just like the first test.
It starts at line 912, and looks to be identical to everything in test 2.
It took two seconds, there were only 2 "New task status" messages again.

So, the only difference we see is the script used a header that has a different user-agent (and had a few other minor differences), and posts a replication request JSON which is this:
   {"_id" : "test", 
    "source" : "http://localhost:5984/from",
    "target" : "http://localhost:5984/to", 
    "create_target" : false, 
    "continuous" : false }

Which is slightly more comprehensive than the CURL JSON which is just this:
     {"source":"from","target":"to"}

But these differences should not cause the replication to be 30 times longer, should they?

Any other ideas why one form of replication takes so much longer?

-Scott

-----------------PASTE-----------------------------------------
[Fri, 24 Jan 2014 16:02:43 GMT] [info] [<0.35.0>] Apache CouchDB has started on http://0.0.0.0:5984/
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.122.0>] 'DELETE' /from {1,1} from "127.0.0.1"
Headers: [{'Accept',"*/*"},
          {'Authorization',"Basic YWRtaW46YWRtaW4="},
          {'Host',"127.0.0.1:5984"},
          {'User-Agent',"curl/7.31.0"}]
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.122.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.122.0>] 127.0.0.1 - - DELETE /from 200
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.173.0>] 'DELETE' /to {1,1} from "127.0.0.1"
Headers: [{'Accept',"*/*"},
          {'Authorization',"Basic YWRtaW46YWRtaW4="},
          {'Host',"127.0.0.1:5984"},
          {'User-Agent',"curl/7.31.0"}]
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.173.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.173.0>] 127.0.0.1 - - DELETE /to 200
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.125.0>] 'PUT' /from {1,1} from "127.0.0.1"
Headers: [{'Accept',"*/*"},
          {'Authorization',"Basic YWRtaW46YWRtaW4="},
          {'Host',"127.0.0.1:5984"},
          {'User-Agent',"curl/7.31.0"}]
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.125.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.125.0>] 127.0.0.1 - - PUT /from 201
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.124.0>] 'PUT' /to {1,1} from "127.0.0.1"
Headers: [{'Accept',"*/*"},
          {'Authorization',"Basic YWRtaW46YWRtaW4="},
          {'Host',"127.0.0.1:5984"},
          {'User-Agent',"curl/7.31.0"}]
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.124.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.124.0>] 127.0.0.1 - - PUT /to 201
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.126.0>] 'PUT' /from/test {1,1} from "127.0.0.1"
Headers: [{'Accept',"*/*"},
          {'Authorization',"Basic YWRtaW46YWRtaW4="},
          {'Content-Length',"16"},
          {'Content-Type',"application/x-www-form-urlencoded"},
          {'Host',"127.0.0.1:5984"},
          {'User-Agent',"curl/7.31.0"}]
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.126.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.126.0>] 127.0.0.1 - - PUT /from/test 201
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.127.0>] 'PUT' /from/test/x937?rev=1-23a888c74ba58fe20dc0d424133750bb {1,
                                                                                  1} from "127.0.0.1"
Headers: [{'Accept',"*/*"},
          {'Content-Length',"4185522"},
          {'Content-Type',"application/octet-stream"},
          {"Expect","100-continue"},
          {'Host',"127.0.0.1:5984"},
          {'User-Agent',"curl/7.31.0"}]
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.127.0>] OAuth Params: [{"rev",
                                    "1-23a888c74ba58fe20dc0d424133750bb"}]
[Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.127.0>] 127.0.0.1 - - PUT /from/test/x937?rev=1-23a888c74ba58fe20dc0d424133750bb 201
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.114.0>] 'POST' /_replicate {1,0} from "127.0.0.1"
Headers: [{'Authorization',"Basic cmlhbjpwYXNzd29yZA=="},
          {'Content-Length',"135"},
          {'Content-Type',"application/json"},
          {'Host',"127.0.0.1"}]
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.114.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] 'HEAD' /from/ {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.115.0>] 127.0.0.1 - - HEAD /from/ 200
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] 'HEAD' /to/ {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.117.0>] 127.0.0.1 - - HEAD /to/ 200
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] 'GET' /from/ {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.115.0>] 127.0.0.1 - - GET /from/ 200
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] 'GET' /to/ {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.117.0>] 127.0.0.1 - - GET /to/ 200
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] 'GET' /from/_local/34754f379443f9584e7595cc8de826ff {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] Minor error in HTTP request: {not_found,missing}
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] Stacktrace: [{couch_httpd_db,couch_doc_open,4,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
                                   {line,806}]},
                                 {couch_httpd_db,db_doc_req,3,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
                                   {line,498}]},
                                 {couch_httpd_db,do_db_req,2,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
                                   {line,234}]},
                                 {couch_httpd,handle_request_int,5,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd.erl"},
                                   {line,332}]},
                                 {mochiweb_http,headers,5,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/mochiweb/mochiweb_http.erl"},
                                   {line,94}]},
                                 {proc_lib,init_p_do_apply,3,
                                  [{file,"proc_lib.erl"},{line,239}]}]
[Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.115.0>] 127.0.0.1 - - GET /from/_local/34754f379443f9584e7595cc8de826ff 404
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] httpd 404 error response:
 {"error":"not_found","reason":"missing"}

[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] 'GET' /from/_local/b035f0fbb5d2d5e1afac34f3708e844e {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] Minor error in HTTP request: {not_found,missing}
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] Stacktrace: [{couch_httpd_db,couch_doc_open,4,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
                                   {line,806}]},
                                 {couch_httpd_db,db_doc_req,3,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
                                   {line,498}]},
                                 {couch_httpd_db,do_db_req,2,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
                                   {line,234}]},
                                 {couch_httpd,handle_request_int,5,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd.erl"},
                                   {line,332}]},
                                 {mochiweb_http,headers,5,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/mochiweb/mochiweb_http.erl"},
                                   {line,94}]},
                                 {proc_lib,init_p_do_apply,3,
                                  [{file,"proc_lib.erl"},{line,239}]}]
[Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.115.0>] 127.0.0.1 - - GET /from/_local/b035f0fbb5d2d5e1afac34f3708e844e 404
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] httpd 404 error response:
 {"error":"not_found","reason":"missing"}

[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] 'GET' /from/_local/829e755391ecedb3c3db2f24421f3bcb {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] Minor error in HTTP request: {not_found,missing}
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] Stacktrace: [{couch_httpd_db,couch_doc_open,4,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
                                   {line,806}]},
                                 {couch_httpd_db,db_doc_req,3,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
                                   {line,498}]},
                                 {couch_httpd_db,do_db_req,2,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
                                   {line,234}]},
                                 {couch_httpd,handle_request_int,5,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd.erl"},
                                   {line,332}]},
                                 {mochiweb_http,headers,5,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/mochiweb/mochiweb_http.erl"},
                                   {line,94}]},
                                 {proc_lib,init_p_do_apply,3,
                                  [{file,"proc_lib.erl"},{line,239}]}]
[Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.115.0>] 127.0.0.1 - - GET /from/_local/829e755391ecedb3c3db2f24421f3bcb 404
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] httpd 404 error response:
 {"error":"not_found","reason":"missing"}

[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] 'GET' /to/_local/34754f379443f9584e7595cc8de826ff {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] Minor error in HTTP request: {not_found,missing}
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] Stacktrace: [{couch_httpd_db,couch_doc_open,4,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
                                   {line,806}]},
                                 {couch_httpd_db,db_doc_req,3,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
                                   {line,498}]},
                                 {couch_httpd_db,do_db_req,2,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
                                   {line,234}]},
                                 {couch_httpd,handle_request_int,5,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd.erl"},
                                   {line,332}]},
                                 {mochiweb_http,headers,5,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/mochiweb/mochiweb_http.erl"},
                                   {line,94}]},
                                 {proc_lib,init_p_do_apply,3,
                                  [{file,"proc_lib.erl"},{line,239}]}]
[Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.117.0>] 127.0.0.1 - - GET /to/_local/34754f379443f9584e7595cc8de826ff 404
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] httpd 404 error response:
 {"error":"not_found","reason":"missing"}

[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] 'GET' /to/_local/b035f0fbb5d2d5e1afac34f3708e844e {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] Minor error in HTTP request: {not_found,missing}
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] Stacktrace: [{couch_httpd_db,couch_doc_open,4,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
                                   {line,806}]},
                                 {couch_httpd_db,db_doc_req,3,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
                                   {line,498}]},
                                 {couch_httpd_db,do_db_req,2,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
                                   {line,234}]},
                                 {couch_httpd,handle_request_int,5,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd.erl"},
                                   {line,332}]},
                                 {mochiweb_http,headers,5,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/mochiweb/mochiweb_http.erl"},
                                   {line,94}]},
                                 {proc_lib,init_p_do_apply,3,
                                  [{file,"proc_lib.erl"},{line,239}]}]
[Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.117.0>] 127.0.0.1 - - GET /to/_local/b035f0fbb5d2d5e1afac34f3708e844e 404
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] httpd 404 error response:
 {"error":"not_found","reason":"missing"}

[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] 'GET' /to/_local/829e755391ecedb3c3db2f24421f3bcb {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] Minor error in HTTP request: {not_found,missing}
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] Stacktrace: [{couch_httpd_db,couch_doc_open,4,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
                                   {line,806}]},
                                 {couch_httpd_db,db_doc_req,3,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
                                   {line,498}]},
                                 {couch_httpd_db,do_db_req,2,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
                                   {line,234}]},
                                 {couch_httpd,handle_request_int,5,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd.erl"},
                                   {line,332}]},
                                 {mochiweb_http,headers,5,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/mochiweb/mochiweb_http.erl"},
                                   {line,94}]},
                                 {proc_lib,init_p_do_apply,3,
                                  [{file,"proc_lib.erl"},{line,239}]}]
[Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.117.0>] 127.0.0.1 - - GET /to/_local/829e755391ecedb3c3db2f24421f3bcb 404
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] httpd 404 error response:
 {"error":"not_found","reason":"missing"}

[Fri, 24 Jan 2014 16:03:04 GMT] [debug] [<0.119.0>] 'GET' /from/_changes?feed=normal&style=all_docs&since=0&heartbeat=10000 {1,
                                                                                             1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:04 GMT] [debug] [<0.119.0>] OAuth Params: [{"feed","normal"},
                                   {"style","all_docs"},
                                   {"since","0"},
                                   {"heartbeat","10000"}]
[Fri, 24 Jan 2014 16:03:04 GMT] [info] [<0.119.0>] 127.0.0.1 - - GET /from/_changes?feed=normal&style=all_docs&since=0&heartbeat=10000 200
[Fri, 24 Jan 2014 16:03:04 GMT] [info] [<0.203.0>] Replication `"34754f379443f9584e7595cc8de826ff"` is using:
    4 worker processes
    a worker batch size of 500
    20 HTTP connections
    a connection timeout of 30000 milliseconds
    10 retries per request
    socket options are: [{keepalive,true},{nodelay,false}]
[Fri, 24 Jan 2014 16:03:04 GMT] [debug] [<0.203.0>] Worker pids are: [<0.217.0>,<0.219.0>,<0.221.0>,<0.223.0>]
[Fri, 24 Jan 2014 16:03:04 GMT] [info] [<0.114.0>] starting new replication `34754f379443f9584e7595cc8de826ff` at <0.203.0> (`http://localhost:5984/from/` -> `http://localhost:5984/to/`)
[Fri, 24 Jan 2014 16:03:04 GMT] [debug] [<0.117.0>] 'POST' /to/_revs_diff {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"47"},
          {'Content-Type',"application/json"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:04 GMT] [debug] [<0.117.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:04 GMT] [info] [<0.117.0>] 127.0.0.1 - - POST /to/_revs_diff 200
[Fri, 24 Jan 2014 16:03:04 GMT] [debug] [<0.115.0>] 'GET' /from/test?revs=true&open_revs=%5B%222-d598f71bc82752ec68c68645c2bd46d5%22%5D&latest=true {1,
                                                                                                                     1} from "127.0.0.1"
Headers: [{'Accept',"multipart/mixed"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:04 GMT] [debug] [<0.115.0>] OAuth Params: [{"revs","true"},
                                   {"open_revs",
                                    "[\"2-d598f71bc82752ec68c68645c2bd46d5\"]"},
                                   {"latest","true"}]
[Fri, 24 Jan 2014 16:03:04 GMT] [info] [<0.115.0>] 127.0.0.1 - - GET /from/test?revs=true&open_revs=%5B%222-d598f71bc82752ec68c68645c2bd46d5%22%5D&latest=true 200
[Fri, 24 Jan 2014 16:03:04 GMT] [debug] [<0.230.0>] Worker flushing doc with attachments
[Fri, 24 Jan 2014 16:03:04 GMT] [debug] [<0.117.0>] 'PUT' /to/test?new_edits=false {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"4186112"},
          {'Content-Type',"multipart/related; boundary=\"49aeafb3545e308aef185b0c610bd9f0\""},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:04 GMT] [debug] [<0.117.0>] OAuth Params: [{"new_edits","false"}]
[Fri, 24 Jan 2014 16:03:09 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:09 GMT] [debug] [<0.121.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:09 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET /from/ 200
[Fri, 24 Jan 2014 16:03:09 GMT] [debug] [<0.93.0>] New task status for <0.203.0>: [{checkpointed_source_seq,0},
                                                   {continuous,false},
                                                   {doc_id,<<"test">>},
                                                   {doc_write_failures,0},
                                                   {docs_read,0},
                                                   {docs_written,0},
                                                   {missing_revisions_found,0},
                                                   {progress,0},
                                                   {replication_id,
                                                    <<"34754f379443f9584e7595cc8de826ff">>},
                                                   {revisions_checked,0},
                                                   {source,
                                                    <<"http://localhost:5984/from/">>},
                                                   {source_seq,2},
                                                   {started_on,1390579384},
                                                   {target,
                                                    <<"http://localhost:5984/to/">>},
                                                   {type,replication},
                                                   {updated_on,1390579389}]
[Fri, 24 Jan 2014 16:03:14 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:14 GMT] [debug] [<0.121.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:14 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET /from/ 200
[Fri, 24 Jan 2014 16:03:14 GMT] [debug] [<0.93.0>] New task status for <0.203.0>: [{checkpointed_source_seq,0},
                                                   {continuous,false},
                                                   {doc_id,<<"test">>},
                                                   {doc_write_failures,0},
                                                   {docs_read,0},
                                                   {docs_written,0},
                                                   {missing_revisions_found,0},
                                                   {progress,0},
                                                   {replication_id,
                                                    <<"34754f379443f9584e7595cc8de826ff">>},
                                                   {revisions_checked,0},
                                                   {source,
                                                    <<"http://localhost:5984/from/">>},
                                                   {source_seq,2},
                                                   {started_on,1390579384},
                                                   {target,
                                                    <<"http://localhost:5984/to/">>},
                                                   {type,replication},
                                                   {updated_on,1390579394}]
[Fri, 24 Jan 2014 16:03:19 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:19 GMT] [debug] [<0.121.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:19 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET /from/ 200
[Fri, 24 Jan 2014 16:03:19 GMT] [debug] [<0.93.0>] New task status for <0.203.0>: [{checkpointed_source_seq,0},
                                                   {continuous,false},
                                                   {doc_id,<<"test">>},
                                                   {doc_write_failures,0},
                                                   {docs_read,0},
                                                   {docs_written,0},
                                                   {missing_revisions_found,0},
                                                   {progress,0},
                                                   {replication_id,
                                                    <<"34754f379443f9584e7595cc8de826ff">>},
                                                   {revisions_checked,0},
                                                   {source,
                                                    <<"http://localhost:5984/from/">>},
                                                   {source_seq,2},
                                                   {started_on,1390579384},
                                                   {target,
                                                    <<"http://localhost:5984/to/">>},
                                                   {type,replication},
                                                   {updated_on,1390579399}]
[Fri, 24 Jan 2014 16:03:24 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:24 GMT] [debug] [<0.121.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:24 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET /from/ 200
[Fri, 24 Jan 2014 16:03:24 GMT] [debug] [<0.93.0>] New task status for <0.203.0>: [{checkpointed_source_seq,0},
                                                   {continuous,false},
                                                   {doc_id,<<"test">>},
                                                   {doc_write_failures,0},
                                                   {docs_read,0},
                                                   {docs_written,0},
                                                   {missing_revisions_found,0},
                                                   {progress,0},
                                                   {replication_id,
                                                    <<"34754f379443f9584e7595cc8de826ff">>},
                                                   {revisions_checked,0},
                                                   {source,
                                                    <<"http://localhost:5984/from/">>},
                                                   {source_seq,2},
                                                   {started_on,1390579384},
                                                   {target,
                                                    <<"http://localhost:5984/to/">>},
                                                   {type,replication},
                                                   {updated_on,1390579404}]
[Fri, 24 Jan 2014 16:03:29 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:29 GMT] [debug] [<0.121.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:29 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET /from/ 200
[Fri, 24 Jan 2014 16:03:29 GMT] [debug] [<0.93.0>] New task status for <0.203.0>: [{checkpointed_source_seq,0},
                                                   {continuous,false},
                                                   {doc_id,<<"test">>},
                                                   {doc_write_failures,0},
                                                   {docs_read,0},
                                                   {docs_written,0},
                                                   {missing_revisions_found,0},
                                                   {progress,0},
                                                   {replication_id,
                                                    <<"34754f379443f9584e7595cc8de826ff">>},
                                                   {revisions_checked,0},
                                                   {source,
                                                    <<"http://localhost:5984/from/">>},
                                                   {source_seq,2},
                                                   {started_on,1390579384},
                                                   {target,
                                                    <<"http://localhost:5984/to/">>},
                                                   {type,replication},
                                                   {updated_on,1390579409}]
[Fri, 24 Jan 2014 16:03:34 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:34 GMT] [debug] [<0.121.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:34 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET /from/ 200
[Fri, 24 Jan 2014 16:03:34 GMT] [debug] [<0.93.0>] New task status for <0.203.0>: [{checkpointed_source_seq,0},
                                                   {continuous,false},
                                                   {doc_id,<<"test">>},
                                                   {doc_write_failures,0},
                                                   {docs_read,0},
                                                   {docs_written,0},
                                                   {missing_revisions_found,0},
                                                   {progress,0},
                                                   {replication_id,
                                                    <<"34754f379443f9584e7595cc8de826ff">>},
                                                   {revisions_checked,0},
                                                   {source,
                                                    <<"http://localhost:5984/from/">>},
                                                   {source_seq,2},
                                                   {started_on,1390579384},
                                                   {target,
                                                    <<"http://localhost:5984/to/">>},
                                                   {type,replication},
                                                   {updated_on,1390579414}]
[Fri, 24 Jan 2014 16:03:39 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:39 GMT] [debug] [<0.121.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:39 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET /from/ 200
[Fri, 24 Jan 2014 16:03:39 GMT] [debug] [<0.93.0>] New task status for <0.203.0>: [{checkpointed_source_seq,0},
                                                   {continuous,false},
                                                   {doc_id,<<"test">>},
                                                   {doc_write_failures,0},
                                                   {docs_read,0},
                                                   {docs_written,0},
                                                   {missing_revisions_found,0},
                                                   {progress,0},
                                                   {replication_id,
                                                    <<"34754f379443f9584e7595cc8de826ff">>},
                                                   {revisions_checked,0},
                                                   {source,
                                                    <<"http://localhost:5984/from/">>},
                                                   {source_seq,2},
                                                   {started_on,1390579384},
                                                   {target,
                                                    <<"http://localhost:5984/to/">>},
                                                   {type,replication},
                                                   {updated_on,1390579419}]
[Fri, 24 Jan 2014 16:03:44 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:44 GMT] [debug] [<0.121.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:44 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET /from/ 200
[Fri, 24 Jan 2014 16:03:44 GMT] [debug] [<0.93.0>] New task status for <0.203.0>: [{checkpointed_source_seq,0},
                                                   {continuous,false},
                                                   {doc_id,<<"test">>},
                                                   {doc_write_failures,0},
                                                   {docs_read,0},
                                                   {docs_written,0},
                                                   {missing_revisions_found,0},
                                                   {progress,0},
                                                   {replication_id,
                                                    <<"34754f379443f9584e7595cc8de826ff">>},
                                                   {revisions_checked,0},
                                                   {source,
                                                    <<"http://localhost:5984/from/">>},
                                                   {source_seq,2},
                                                   {started_on,1390579384},
                                                   {target,
                                                    <<"http://localhost:5984/to/">>},
                                                   {type,replication},
                                                   {updated_on,1390579424}]
[Fri, 24 Jan 2014 16:03:49 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:49 GMT] [debug] [<0.121.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:49 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET /from/ 200
[Fri, 24 Jan 2014 16:03:49 GMT] [debug] [<0.93.0>] New task status for <0.203.0>: [{checkpointed_source_seq,0},
                                                   {continuous,false},
                                                   {doc_id,<<"test">>},
                                                   {doc_write_failures,0},
                                                   {docs_read,0},
                                                   {docs_written,0},
                                                   {missing_revisions_found,0},
                                                   {progress,0},
                                                   {replication_id,
                                                    <<"34754f379443f9584e7595cc8de826ff">>},
                                                   {revisions_checked,0},
                                                   {source,
                                                    <<"http://localhost:5984/from/">>},
                                                   {source_seq,2},
                                                   {started_on,1390579384},
                                                   {target,
                                                    <<"http://localhost:5984/to/">>},
                                                   {type,replication},
                                                   {updated_on,1390579429}]
[Fri, 24 Jan 2014 16:03:54 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:54 GMT] [debug] [<0.121.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:54 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET /from/ 200
[Fri, 24 Jan 2014 16:03:54 GMT] [debug] [<0.93.0>] New task status for <0.203.0>: [{checkpointed_source_seq,0},
                                                   {continuous,false},
                                                   {doc_id,<<"test">>},
                                                   {doc_write_failures,0},
                                                   {docs_read,0},
                                                   {docs_written,0},
                                                   {missing_revisions_found,0},
                                                   {progress,0},
                                                   {replication_id,
                                                    <<"34754f379443f9584e7595cc8de826ff">>},
                                                   {revisions_checked,0},
                                                   {source,
                                                    <<"http://localhost:5984/from/">>},
                                                   {source_seq,2},
                                                   {started_on,1390579384},
                                                   {target,
                                                    <<"http://localhost:5984/to/">>},
                                                   {type,replication},
                                                   {updated_on,1390579434}]
[Fri, 24 Jan 2014 16:03:59 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:59 GMT] [debug] [<0.121.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:59 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET /from/ 200
[Fri, 24 Jan 2014 16:03:59 GMT] [debug] [<0.93.0>] New task status for <0.203.0>: [{checkpointed_source_seq,0},
                                                   {continuous,false},
                                                   {doc_id,<<"test">>},
                                                   {doc_write_failures,0},
                                                   {docs_read,0},
                                                   {docs_written,0},
                                                   {missing_revisions_found,0},
                                                   {progress,0},
                                                   {replication_id,
                                                    <<"34754f379443f9584e7595cc8de826ff">>},
                                                   {revisions_checked,0},
                                                   {source,
                                                    <<"http://localhost:5984/from/">>},
                                                   {source_seq,2},
                                                   {started_on,1390579384},
                                                   {target,
                                                    <<"http://localhost:5984/to/">>},
                                                   {type,replication},
                                                   {updated_on,1390579439}]
[Fri, 24 Jan 2014 16:04:04 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:04:04 GMT] [debug] [<0.121.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:04:04 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET /from/ 200
[Fri, 24 Jan 2014 16:04:04 GMT] [debug] [<0.93.0>] New task status for <0.203.0>: [{checkpointed_source_seq,0},
                                                   {continuous,false},
                                                   {doc_id,<<"test">>},
                                                   {doc_write_failures,0},
                                                   {docs_read,0},
                                                   {docs_written,0},
                                                   {missing_revisions_found,0},
                                                   {progress,0},
                                                   {replication_id,
                                                    <<"34754f379443f9584e7595cc8de826ff">>},
                                                   {revisions_checked,0},
                                                   {source,
                                                    <<"http://localhost:5984/from/">>},
                                                   {source_seq,2},
                                                   {started_on,1390579384},
                                                   {target,
                                                    <<"http://localhost:5984/to/">>},
                                                   {type,replication},
                                                   {updated_on,1390579444}]
[Fri, 24 Jan 2014 16:04:09 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:04:09 GMT] [debug] [<0.121.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:04:09 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET /from/ 200
[Fri, 24 Jan 2014 16:04:09 GMT] [debug] [<0.93.0>] New task status for <0.203.0>: [{checkpointed_source_seq,0},
                                                   {continuous,false},
                                                   {doc_id,<<"test">>},
                                                   {doc_write_failures,0},
                                                   {docs_read,0},
                                                   {docs_written,0},
                                                   {missing_revisions_found,0},
                                                   {progress,0},
                                                   {replication_id,
                                                    <<"34754f379443f9584e7595cc8de826ff">>},
                                                   {revisions_checked,0},
                                                   {source,
                                                    <<"http://localhost:5984/from/">>},
                                                   {source_seq,2},
                                                   {started_on,1390579384},
                                                   {target,
                                                    <<"http://localhost:5984/to/">>},
                                                   {type,replication},
                                                   {updated_on,1390579449}]
[Fri, 24 Jan 2014 16:04:14 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:04:14 GMT] [debug] [<0.121.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:04:14 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET /from/ 200
[Fri, 24 Jan 2014 16:04:14 GMT] [debug] [<0.93.0>] New task status for <0.203.0>: [{checkpointed_source_seq,0},
                                                   {continuous,false},
                                                   {doc_id,<<"test">>},
                                                   {doc_write_failures,0},
                                                   {docs_read,0},
                                                   {docs_written,0},
                                                   {missing_revisions_found,0},
                                                   {progress,0},
                                                   {replication_id,
                                                    <<"34754f379443f9584e7595cc8de826ff">>},
                                                   {revisions_checked,0},
                                                   {source,
                                                    <<"http://localhost:5984/from/">>},
                                                   {source_seq,2},
                                                   {started_on,1390579384},
                                                   {target,
                                                    <<"http://localhost:5984/to/">>},
                                                   {type,replication},
                                                   {updated_on,1390579454}]
[Fri, 24 Jan 2014 16:04:16 GMT] [info] [<0.117.0>] 127.0.0.1 - - PUT /to/test?new_edits=false 201
[Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.218.0>] Worker reported completion of seq {1,2}
[Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.203.0>] Worker reported seq {1,2}, through seq was {0,0}, new through seq is {1,
                                                                                          2}, highest seq done was {0,
                                                                                                                    0}, new highest seq done is {1,
                                                                                                                                                 2}
Seqs in progress were: [{1,2}]
Seqs in progress are now: []
[Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.121.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:04:16 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET /from/ 200
[Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.93.0>] New task status for <0.203.0>: [{checkpointed_source_seq,0},
                                                   {continuous,false},
                                                   {doc_id,<<"test">>},
                                                   {doc_write_failures,0},
                                                   {docs_read,1},
                                                   {docs_written,1},
                                                   {missing_revisions_found,1},
                                                   {progress,100},
                                                   {replication_id,
                                                    <<"34754f379443f9584e7595cc8de826ff">>},
                                                   {revisions_checked,1},
                                                   {source,
                                                    <<"http://localhost:5984/from/">>},
                                                   {source_seq,2},
                                                   {started_on,1390579384},
                                                   {target,
                                                    <<"http://localhost:5984/to/">>},
                                                   {type,replication},
                                                   {updated_on,1390579456}]
[Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.121.0>] 'POST' /from/_ensure_full_commit {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Content-Type',"application/json"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.117.0>] 'POST' /to/_ensure_full_commit {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Content-Type',"application/json"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.121.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.117.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:04:16 GMT] [info] [<0.121.0>] 127.0.0.1 - - POST /from/_ensure_full_commit 201
[Fri, 24 Jan 2014 16:04:16 GMT] [info] [<0.117.0>] 127.0.0.1 - - POST /to/_ensure_full_commit 201
[Fri, 24 Jan 2014 16:04:16 GMT] [info] [<0.203.0>] recording a checkpoint for `http://localhost:5984/from/` -> `http://localhost:5984/to/` at source update_seq 2
[Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.121.0>] 'PUT' /from/_local/34754f379443f9584e7595cc8de826ff {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"473"},
          {'Content-Type',"application/json"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"},
          {"X-Couch-Full-Commit","false"}]
[Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.121.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:04:16 GMT] [info] [<0.121.0>] 127.0.0.1 - - PUT /from/_local/34754f379443f9584e7595cc8de826ff 201
[Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.117.0>] 'PUT' /to/_local/34754f379443f9584e7595cc8de826ff {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"473"},
          {'Content-Type',"application/json"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"},
          {"X-Couch-Full-Commit","false"}]
[Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.117.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:04:16 GMT] [info] [<0.117.0>] 127.0.0.1 - - PUT /to/_local/34754f379443f9584e7595cc8de826ff 201
[Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.121.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:04:16 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET /from/ 200
[Fri, 24 Jan 2014 16:04:16 GMT] [info] [<0.114.0>] 127.0.0.1 - - POST /_replicate 200
[Fri, 24 Jan 2014 16:17:27 GMT] [debug] [<0.241.0>] 'DELETE' /from {1,1} from "127.0.0.1"
Headers: [{'Accept',"*/*"},
          {'Authorization',"Basic YWRtaW46YWRtaW4="},
          {'Host',"127.0.0.1:5984"},
          {'User-Agent',"curl/7.31.0"}]
[Fri, 24 Jan 2014 16:17:27 GMT] [debug] [<0.241.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:17:27 GMT] [info] [<0.241.0>] 127.0.0.1 - - DELETE /from 200
[Fri, 24 Jan 2014 16:17:27 GMT] [debug] [<0.120.0>] 'DELETE' /to {1,1} from "127.0.0.1"
Headers: [{'Accept',"*/*"},
          {'Authorization',"Basic YWRtaW46YWRtaW4="},
          {'Host',"127.0.0.1:5984"},
          {'User-Agent',"curl/7.31.0"}]
[Fri, 24 Jan 2014 16:17:27 GMT] [debug] [<0.120.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:17:27 GMT] [info] [<0.120.0>] 127.0.0.1 - - DELETE /to 200
[Fri, 24 Jan 2014 16:17:27 GMT] [debug] [<0.118.0>] 'PUT' /from {1,1} from "127.0.0.1"
Headers: [{'Accept',"*/*"},
          {'Authorization',"Basic YWRtaW46YWRtaW4="},
          {'Host',"127.0.0.1:5984"},
          {'User-Agent',"curl/7.31.0"}]
[Fri, 24 Jan 2014 16:17:27 GMT] [debug] [<0.118.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:17:27 GMT] [info] [<0.118.0>] 127.0.0.1 - - PUT /from 201
[Fri, 24 Jan 2014 16:17:27 GMT] [debug] [<0.116.0>] 'PUT' /to {1,1} from "127.0.0.1"
Headers: [{'Accept',"*/*"},
          {'Authorization',"Basic YWRtaW46YWRtaW4="},
          {'Host',"127.0.0.1:5984"},
          {'User-Agent',"curl/7.31.0"}]
[Fri, 24 Jan 2014 16:17:27 GMT] [debug] [<0.116.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:17:27 GMT] [info] [<0.116.0>] 127.0.0.1 - - PUT /to 201
[Fri, 24 Jan 2014 16:17:27 GMT] [debug] [<0.113.0>] 'PUT' /from/test {1,1} from "127.0.0.1"
Headers: [{'Accept',"*/*"},
          {'Authorization',"Basic YWRtaW46YWRtaW4="},
          {'Content-Length',"16"},
          {'Content-Type',"application/x-www-form-urlencoded"},
          {'Host',"127.0.0.1:5984"},
          {'User-Agent',"curl/7.31.0"}]
[Fri, 24 Jan 2014 16:17:27 GMT] [debug] [<0.113.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:17:27 GMT] [info] [<0.113.0>] 127.0.0.1 - - PUT /from/test 201
[Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.112.0>] 'PUT' /from/test/x937?rev=1-23a888c74ba58fe20dc0d424133750bb {1,
                                                                                  1} from "127.0.0.1"
Headers: [{'Accept',"*/*"},
          {'Content-Length',"4185522"},
          {'Content-Type',"application/octet-stream"},
          {"Expect","100-continue"},
          {'Host',"127.0.0.1:5984"},
          {'User-Agent',"curl/7.31.0"}]
[Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.112.0>] OAuth Params: [{"rev",
                                    "1-23a888c74ba58fe20dc0d424133750bb"}]
[Fri, 24 Jan 2014 16:17:28 GMT] [info] [<0.112.0>] 127.0.0.1 - - PUT /from/test/x937?rev=1-23a888c74ba58fe20dc0d424133750bb 201
[Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.123.0>] 'PUT' /_replicator/test_slow {1,1} from "127.0.0.1"
Headers: [{'Accept',"*/*"},
          {'Authorization',"Basic YWRtaW46YWRtaW4="},
          {'Content-Length',"31"},
          {'Content-Type',"application/x-www-form-urlencoded"},
          {'Host',"127.0.0.1:5984"},
          {'User-Agent',"curl/7.31.0"}]
[Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.123.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1148.0>] OS Process Start :: #Port<0.5880>
[Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.104.0>] Teach ddoc to new proc {proc,<0.1148.0>,<<"javascript">>,
                                            [],
                                            {couch_os_process,prompt},
                                            {couch_os_process,set_timeout},
                                            {couch_os_process,stop}} with DDocKey: {<<"_design/_replicator">>,
                                                                                    <<"1-5bfa2c99eefe2b2eb4962db50aa3cfd4">>}
[Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1148.0>] OS Process #Port<0.5880> Input  :: ["ddoc","new","_design/_replicator",{"_id":"_design/_replicator","_rev":"1-5bfa2c99eefe2b2eb4962db50aa3cfd4","language":"javascript","validate_doc_update":"\n    function(newDoc, oldDoc, userCtx) {\n        function reportError(error_msg) {\n            log('Error writing document `' + newDoc._id +\n                '\\' to the replicator database: ' + error_msg);\n            throw({forbidden: error_msg});\n        }\n\n        function validateEndpoint(endpoint, fieldName) {\n            if ((typeof endpoint !== 'string') &&\n                ((typeof endpoint !== 'object') || (endpoint === null))) {\n\n                reportError('The `' + fieldName + '\\' property must exist' +\n                    ' and be either a string or an
 object.');\n            }\n\n            if (typeof endpoint === 'object') {\n                if ((typeof endpoint.url !== 'string') || !endpoint.url) {\n                    reportError('The url property must exist in the `' +\n                        fieldName + '\\' field and must be a non-empty string.');\n                }\n\n                if ((typeof endpoint.auth !== 'undefined') &&\n                    ((typeof endpoint.auth !== 'object') ||\n                        endpoint.auth === null)) {\n\n                    reportError('`' + fieldName +\n                        '.auth\\' must be a non-null object.');\n                }\n\n                if ((typeof endpoint.headers !== 'undefined')
 &&\n                    ((typeof endpoint.headers !== 'object') ||\n                        endpoint.headers === null)) {\n\n                    reportError('`' + fieldName +\n                        '.headers\\' must be a non-null object.');\n                }\n            }\n        }\n\n        var isReplicator = (userCtx.roles.indexOf('_replicator') >= 0);\n        var isAdmin = (userCtx.roles.indexOf('_admin') >= 0);\n\n        if (oldDoc && !newDoc._deleted && !isReplicator &&\n            (oldDoc._replication_state === 'triggered')) {\n            reportError('Only the replicator can edit replication documents ' +\n                'that are in the triggered state.');\n        }\n\n        if (!newDoc._deleted) {\n           
 validateEndpoint(newDoc.source, 'source');\n            validateEndpoint(newDoc.target, 'target');\n\n            if ((typeof newDoc.create_target !== 'undefined') &&\n                (typeof newDoc.create_target !== 'boolean')) {\n\n                reportError('The `create_target\\' field must be a boolean.');\n            }\n\n            if ((typeof newDoc.continuous !== 'undefined') &&\n                (typeof newDoc.continuous !== 'boolean')) {\n\n                reportError('The `continuous\\' field must be a boolean.');\n            }\n\n            if ((typeof newDoc.doc_ids !== 'undefined') &&\n                !isArray(newDoc.doc_ids)) {\n\n                reportError('The `doc_ids\\' field must be an array of strings.');\n            }\n\n            if ((typeof
 newDoc.filter !== 'undefined') &&\n                ((typeof newDoc.filter !== 'string') || !newDoc.filter)) {\n\n                reportError('The `filter\\' field must be a non-empty string.');\n            }\n\n            if ((typeof newDoc.query_params !== 'undefined') &&\n                ((typeof newDoc.query_params !== 'object') ||\n                    newDoc.query_params === null)) {\n\n                reportError('The `query_params\\' field must be an object.');\n            }\n\n            if (newDoc.user_ctx) {\n                var user_ctx = newDoc.user_ctx;\n\n                if ((typeof user_ctx !== 'object') || (user_ctx === null)) {\n                    reportError('The `user_ctx\\' property must be a ' +\n                        'non-null
 object.');\n                }\n\n                if (!(user_ctx.name === null ||\n                    (typeof user_ctx.name === 'undefined') ||\n                    ((typeof user_ctx.name === 'string') &&\n                        user_ctx.name.length > 0))) {\n\n                    reportError('The `user_ctx.name\\' property must be a ' +\n                        'non-empty string or null.');\n                }\n\n                if (!isAdmin && (user_ctx.name !== userCtx.name)) {\n                    reportError('The given `user_ctx.name\\' is not valid');\n                }\n\n                if (user_ctx.roles && !isArray(user_ctx.roles)) {\n                    reportError('The `user_ctx.roles\\' property must be '
 +\n                        'an array of strings.');\n                }\n\n                if (!isAdmin && user_ctx.roles) {\n                    for (var i = 0; i < user_ctx.roles.length; i++) {\n                        var role = user_ctx.roles[i];\n\n                        if (typeof role !== 'string' || role.length === 0) {\n                            reportError('Roles must be non-empty strings.');\n                        }\n                        if (userCtx.roles.indexOf(role) === -1) {\n                            reportError('Invalid role (`' + role +\n                                '\\') in the `user_ctx\\'');\n                       
 }\n                    }\n                }\n            } else {\n                if (!isAdmin) {\n                    reportError('The `user_ctx\\' property is missing (it is ' +\n                       'optional for admins only).');\n                }\n            }\n        } else {\n            if (!isAdmin) {\n                if (!oldDoc.user_ctx || (oldDoc.user_ctx.name !== userCtx.name)) {\n                    reportError('Replication documents can only be deleted by ' +\n                        'admins or by the users who created them.');\n                }\n            }\n        }\n    }\n"}]
[Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1148.0>] OS Process #Port<0.5880> Output :: true
[Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1148.0>] OS Process #Port<0.5880> Input  :: ["reset",{"reduce_limit":true,"timeout":600000}]
[Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1148.0>] OS Process #Port<0.5880> Output :: true
[Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1148.0>] OS Process #Port<0.5880> Input  :: ["ddoc","_design/_replicator",["validate_doc_update"],[{"_id":"test_slow","source":"from","target":"to","owner":"admin","_revisions":{"start":0,"ids":[]}},null,{"db":"_replicator","name":"admin","roles":["_admin"]},{}]]
[Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1148.0>] OS Process #Port<0.5880> Output :: 1
[Fri, 24 Jan 2014 16:17:28 GMT] [info] [<0.123.0>] 127.0.0.1 - - PUT /_replicator/test_slow 201
[Fri, 24 Jan 2014 16:17:28 GMT] [info] [<0.141.0>] Attempting to start replication `2c7e8c1e1f8e0dde2e29b03395320da4` (document `test_slow`).
[Fri, 24 Jan 2014 16:17:28 GMT] [info] [<0.1151.0>] Replication `"2c7e8c1e1f8e0dde2e29b03395320da4"` is using:
    4 worker processes
    a worker batch size of 500
    20 HTTP connections
    a connection timeout of 30000 milliseconds
    10 retries per request
    socket options are: [{keepalive,true},{nodelay,false}]
[Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1151.0>] Worker pids are: [<0.1157.0>,<0.1158.0>,<0.1159.0>,
                                       <0.1160.0>]
[Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1157.0>] Worker flushing doc with attachments
[Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.104.0>] DDocProc found for DDocKey: {<<"_design/_replicator">>,
                                                 <<"1-5bfa2c99eefe2b2eb4962db50aa3cfd4">>}
[Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1148.0>] OS Process #Port<0.5880> Input  :: ["reset",{"reduce_limit":true,"timeout":600000}]
[Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1148.0>] OS Process #Port<0.5880> Output :: true
[Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1148.0>] OS Process #Port<0.5880> Input  ::
 ["ddoc","_design/_replicator",["validate_doc_update"],[{"_id":"test_slow","_rev":"9-e8771f3a7da376bf5ec7de6d0621e094","source":"from","target":"to","owner":"admin","_replication_state":"triggered","_replication_state_time":"2014-01-24T10:17:28-06:00","_replication_id":"2c7e8c1e1f8e0dde2e29b03395320da4","_revisions":{"start":9,"ids":["e8771f3a7da376bf5ec7de6d0621e094","bc6b5a78f5aca5df6186f319bdfff864","b13beb5b518d56958c6f686712512608","0fceb2c155368db6f57f9236244f92ee","c458b4d077f9a36c2aa5f90ffad0722e","c8ce2f3c769aa5080587f2223c5a2fa1","eecc4a3518160cd983b2bd7f01f3b166","7b75ee746380c1a791f5e9f2fb4a2386","5c3c9988bbf8fd048bdde2d7ecab7dd6"]}},{"_id":"test_slow","_rev":"9-e8771f3a7da376bf5ec7de6d0621e094","source":"from","target":"to","owner":"admin","_revisions":{"start":9,"ids":["e8771f3a7da376bf5ec7de6d0621e094","bc6b5a78f5aca5df6186f319bdfff864","b13beb5b518d56958c6f686712512608","0fceb2c155368db6f57f9236244f92ee","c458b4d077f9a36c2aa5f90ffad0722e
","c8ce2f3c769aa5080587f2223c5a2fa1","eecc4a3518160cd983b2bd7f01f3b166","7b75ee746380c1a791f5e9f2fb4a2386","5c3c9988bbf8fd048bdde2d7ecab7dd6"]}},{"db":"_replicator","name":null,"roles":["_admin","_replicator"]},{}]]
[Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1148.0>] OS Process #Port<0.5880> Output :: 1
[Fri, 24 Jan 2014 16:17:28 GMT] [info] [<0.1151.0>] Document `test_slow` triggered replication `2c7e8c1e1f8e0dde2e29b03395320da4`
[Fri, 24 Jan 2014 16:17:28 GMT] [info] [<0.1150.0>] starting new replication `2c7e8c1e1f8e0dde2e29b03395320da4` at <0.1151.0> (`from` -> `to`)
[Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1157.0>] Worker reported completion of seq {1,2}
[Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1151.0>] Worker reported seq {1,2}, through seq was {0,0}, new through seq is {1,
                                                                                           2}, highest seq done was {0,
                                                                                                                     0}, new highest seq done is {1,
                                                                                                                                                  2}
Seqs in progress were: [{1,2}]
Seqs in progress are now: []
[Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.93.0>] New task status for <0.1151.0>: [{checkpointed_source_seq,
                                                     0},
                                                    {continuous,false},
                                                    {doc_id,<<"test_slow">>},
                                                    {doc_write_failures,0},
                                                    {docs_read,1},
                                                    {docs_written,1},
                                                    {missing_revisions_found,
                                                     1},
                                                    {progress,100},
                                                    {replication_id,
                                                     <<"2c7e8c1e1f8e0dde2e29b03395320da4">>},
                                                    {revisions_checked,1},
                                                    {source,<<"from">>},
                                                    {source_seq,2},
                                                    {started_on,1390580248},
                                                    {target,<<"to">>},
                                                    {type,replication},
                                                    {updated_on,1390580248}]
[Fri, 24 Jan 2014 16:17:30 GMT] [info] [<0.1151.0>] recording a checkpoint for `from` -> `to` at source update_seq 2
[Fri, 24 Jan 2014 16:17:30 GMT] [debug] [<0.93.0>] New task status for <0.1151.0>: [{checkpointed_source_seq,
                                                     2},
                                                    {continuous,false},
                                                    {doc_id,<<"test_slow">>},
                                                    {doc_write_failures,0},
                                                    {docs_read,1},
                                                    {docs_written,1},
                                                    {missing_revisions_found,
                                                     1},
                                                    {progress,100},
                                                    {replication_id,
                                                     <<"2c7e8c1e1f8e0dde2e29b03395320da4">>},
                                                    {revisions_checked,1},
                                                    {source,<<"from">>},
                                                    {source_seq,2},
                                                    {started_on,1390580248},
                                                    {target,<<"to">>},
                                                    {type,replication},
                                                    {updated_on,1390580250}]
[Fri, 24 Jan 2014 16:17:30 GMT] [debug] [<0.104.0>] DDocProc found for DDocKey: {<<"_design/_replicator">>,
                                                 <<"1-5bfa2c99eefe2b2eb4962db50aa3cfd4">>}
[Fri, 24 Jan 2014 16:17:30 GMT] [debug] [<0.1148.0>] OS Process #Port<0.5880> Input  :: ["reset",{"reduce_limit":true,"timeout":600000}]
[Fri, 24 Jan 2014 16:17:30 GMT] [debug] [<0.1148.0>] OS Process #Port<0.5880> Output :: true
[Fri, 24 Jan 2014 16:17:30 GMT] [debug] [<0.1148.0>] OS Process #Port<0.5880> Input  ::
 ["ddoc","_design/_replicator",["validate_doc_update"],[{"_id":"test_slow","_rev":"10-5ec32fc496eaa6af8e0af0ff9e75ec16","source":"from","target":"to","owner":"admin","_replication_state":"completed","_replication_state_time":"2014-01-24T10:17:30-06:00","_replication_id":"2c7e8c1e1f8e0dde2e29b03395320da4","_replication_stats":{"revisions_checked":1,"missing_revisions_found":1,"docs_read":1,"docs_written":1,"doc_write_failures":0,"checkpointed_source_seq":2},"_revisions":{"start":10,"ids":["5ec32fc496eaa6af8e0af0ff9e75ec16","e8771f3a7da376bf5ec7de6d0621e094","bc6b5a78f5aca5df6186f319bdfff864","b13beb5b518d56958c6f686712512608","0fceb2c155368db6f57f9236244f92ee","c458b4d077f9a36c2aa5f90ffad0722e","c8ce2f3c769aa5080587f2223c5a2fa1","eecc4a3518160cd983b2bd7f01f3b166","7b75ee746380c1a791f5e9f2fb4a2386","5c3c9988bbf8fd048bdde2d7ecab7dd6"]}},{"_id":"test_slow","_rev":"10-5ec32fc496eaa6af8e0af0ff9e75ec16","source":"from","target":"to","owner":"admin","_replicati
on_state":"triggered","_replication_state_time":"2014-01-24T10:17:28-06:00","_replication_id":"2c7e8c1e1f8e0dde2e29b03395320da4","_revisions":{"start":10,"ids":["5ec32fc496eaa6af8e0af0ff9e75ec16","e8771f3a7da376bf5ec7de6d0621e094","bc6b5a78f5aca5df6186f319bdfff864","b13beb5b518d56958c6f686712512608","0fceb2c155368db6f57f9236244f92ee","c458b4d077f9a36c2aa5f90ffad0722e","c8ce2f3c769aa5080587f2223c5a2fa1","eecc4a3518160cd983b2bd7f01f3b166","7b75ee746380c1a791f5e9f2fb4a2386","5c3c9988bbf8fd048bdde2d7ecab7dd6"]}},{"db":"_replicator","name":null,"roles":["_admin","_replicator"]},{}]]
[Fri, 24 Jan 2014 16:17:30 GMT] [debug] [<0.1148.0>] OS Process #Port<0.5880> Output :: 1
[Fri, 24 Jan 2014 16:17:30 GMT] [info] [<0.1151.0>] Replication `2c7e8c1e1f8e0dde2e29b03395320da4` finished (triggered by document `test_slow`)
[Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1119.0>] 'DELETE' /from {1,1} from "127.0.0.1"
Headers: [{'Accept',"*/*"},
          {'Authorization',"Basic YWRtaW46YWRtaW4="},
          {'Host',"127.0.0.1:5984"},
          {'User-Agent',"curl/7.31.0"}]
[Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1119.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:26:38 GMT] [info] [<0.1119.0>] 127.0.0.1 - - DELETE /from 200
[Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1122.0>] 'DELETE' /to {1,1} from "127.0.0.1"
Headers: [{'Accept',"*/*"},
          {'Authorization',"Basic YWRtaW46YWRtaW4="},
          {'Host',"127.0.0.1:5984"},
          {'User-Agent',"curl/7.31.0"}]
[Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1122.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:26:38 GMT] [info] [<0.1122.0>] 127.0.0.1 - - DELETE /to 200
[Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1124.0>] 'PUT' /from {1,1} from "127.0.0.1"
Headers: [{'Accept',"*/*"},
          {'Authorization',"Basic YWRtaW46YWRtaW4="},
          {'Host',"127.0.0.1:5984"},
          {'User-Agent',"curl/7.31.0"}]
[Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1124.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:26:38 GMT] [info] [<0.1124.0>] 127.0.0.1 - - PUT /from 201
[Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1134.0>] 'PUT' /to {1,1} from "127.0.0.1"
Headers: [{'Accept',"*/*"},
          {'Authorization',"Basic YWRtaW46YWRtaW4="},
          {'Host',"127.0.0.1:5984"},
          {'User-Agent',"curl/7.31.0"}]
[Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1134.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:26:38 GMT] [info] [<0.1134.0>] 127.0.0.1 - - PUT /to 201
[Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1144.0>] 'PUT' /from/test {1,1} from "127.0.0.1"
Headers: [{'Accept',"*/*"},
          {'Authorization',"Basic YWRtaW46YWRtaW4="},
          {'Content-Length',"16"},
          {'Content-Type',"application/x-www-form-urlencoded"},
          {'Host',"127.0.0.1:5984"},
          {'User-Agent',"curl/7.31.0"}]
[Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1144.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:26:38 GMT] [info] [<0.1144.0>] 127.0.0.1 - - PUT /from/test 201
[Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1145.0>] 'PUT' /from/test/x937?rev=1-23a888c74ba58fe20dc0d424133750bb {1,
                                                                                   1} from "127.0.0.1"
Headers: [{'Accept',"*/*"},
          {'Content-Length',"4185522"},
          {'Content-Type',"application/octet-stream"},
          {"Expect","100-continue"},
          {'Host',"127.0.0.1:5984"},
          {'User-Agent',"curl/7.31.0"}]
[Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1145.0>] OAuth Params: [{"rev",
                                     "1-23a888c74ba58fe20dc0d424133750bb"}]
[Fri, 24 Jan 2014 16:26:38 GMT] [info] [<0.1145.0>] 127.0.0.1 - - PUT /from/test/x937?rev=1-23a888c74ba58fe20dc0d424133750bb 201
[Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1147.0>] 'POST' /_replicate {1,1} from "127.0.0.1"
Headers: [{'Accept',"*/*"},
          {'Authorization',"Basic YWRtaW46YWRtaW4="},
          {'Content-Length',"31"},
          {'Content-Type',"application/json"},
          {'Host',"127.0.0.1:5984"},
          {'User-Agent',"curl/7.31.0"}]
[Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1147.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:26:38 GMT] [info] [<0.1744.0>] Replication `"32b3b1ede908033172b54853f9031d30"` is using:
    4 worker processes
    a worker batch size of 500
    20 HTTP connections
    a connection timeout of 30000 milliseconds
    10 retries per request
    socket options are: [{keepalive,true},{nodelay,false}]
[Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1744.0>] Worker pids are: [<0.1750.0>,<0.1751.0>,<0.1752.0>,
                                       <0.1753.0>]
[Fri, 24 Jan 2014 16:26:38 GMT] [info] [<0.1147.0>] starting new replication `32b3b1ede908033172b54853f9031d30` at <0.1744.0> (`from` -> `to`)
[Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1750.0>] Worker flushing doc with attachments
[Fri, 24 Jan 2014 16:26:39 GMT] [debug] [<0.1750.0>] Worker reported completion of seq {1,2}
[Fri, 24 Jan 2014 16:26:39 GMT] [debug] [<0.1744.0>] Worker reported seq {1,2}, through seq was {0,0}, new through seq is {1,
                                                                                           2}, highest seq done was {0,
                                                                                                                     0}, new highest seq done is {1,
                                                                                                                                                  2}
Seqs in progress were: [{1,2}]
Seqs in progress are now: []
[Fri, 24 Jan 2014 16:26:39 GMT] [debug] [<0.93.0>] New task status for <0.1744.0>: [{checkpointed_source_seq,
                                                     0},
                                                    {continuous,false},
                                                    {doc_id,null},
                                                    {doc_write_failures,0},
                                                    {docs_read,1},
                                                    {docs_written,1},
                                                    {missing_revisions_found,
                                                     1},
                                                    {progress,100},
                                                    {replication_id,
                                                     <<"32b3b1ede908033172b54853f9031d30">>},
                                                    {revisions_checked,1},
                                                    {source,<<"from">>},
                                                    {source_seq,2},
                                                    {started_on,1390580798},
                                                    {target,<<"to">>},
                                                    {type,replication},
                                                    {updated_on,1390580799}]
[Fri, 24 Jan 2014 16:26:40 GMT] [info] [<0.1744.0>] recording a checkpoint for `from` -> `to` at source update_seq 2
[Fri, 24 Jan 2014 16:26:40 GMT] [debug] [<0.93.0>] New task status for <0.1744.0>: [{checkpointed_source_seq,
                                                     2},
                                                    {continuous,false},
                                                    {doc_id,null},
                                                    {doc_write_failures,0},
                                                    {docs_read,1},
                                                    {docs_written,1},
                                                    {missing_revisions_found,
                                                     1},
                                                    {progress,100},
                                                    {replication_id,
                                                     <<"32b3b1ede908033172b54853f9031d30">>},
                                                    {revisions_checked,1},
                                                    {source,<<"from">>},
                                                    {source_seq,2},
                                                    {started_on,1390580798},
                                                    {target,<<"to">>},
                                                    {type,replication},
                                                    {updated_on,1390580800}]
[Fri, 24 Jan 2014 16:26:40 GMT] [info] [<0.1147.0>] 127.0.0.1 - - POST /_replicate 200

Re: Replication of attachment is extremely slow.. LOGGED INFORMATION

Posted by Scott Weber <sc...@sbcglobal.net>.
I do not see the log attached. It must have been stripped by the list server. 
I will copy/paste it to the bottom of this email.  It is 1024 lines.




----- Original Message -----
From: Scott Weber <sc...@sbcglobal.net>
To: "user@couchdb.apache.org" <us...@couchdb.apache.org>
Cc: "replication@couchdb.apache.org" <re...@couchdb.apache.org>
Sent: Friday, January 24, 2014 1:34 PM
Subject: Re: Replication of attachment is extremely slow.. LOGGED INFORMATION

We have a duplication of the problem from a cleaned installation.  And there are some interesting things in the log, but I don't know what they mean, since I am not familiar with the internals of CouchDB.

I have attached the couch log. I can send the actual file being replicated, but it is about 4Meg.  Too big to make a reasonable attachment.  And I don't think it will be of value to this issue.

As to the log, it is broken in three sections (tests), which I will outline:
In all cases, it first deletes all databases, then creates them, and adds a doc and attachment.
<1>
The first is where replication was requested via a script HTTP post.
The attachment is uploaded at line 36 - content length 4185522 bytes
The "_replicate" request is PUT at line 49.
Then a bunch of "Minor error in HTTP request" messages appear.  Not sure what that means.
Then starting at line 328 to 329, you can see 5 second gaps as it tries to "GET" from the "from" database
and a bunch of "New task status" messages are repeated (about 15 of them).
This repeats, showing 5 second pauses until line 740, where it says "POST /to/_ensure_full_commit 201"
TOTAL TIME:  16:03:03 to 16:04:16   One minute, thirteen seconds.

<2>
The next test was done using CURL, starting at line 770, it deletes the databases, and starts over.
At line 818, there is the PUT request to the _replicator db  (NOTE: This is "_replicator", not "_replicate", what is the difference?)
There are only 2 "new task status" messages, and the replication is done by at line 911
TOTAL TIME:  16:17:28 to 16:17:30   2 seconds.

<3>
The next test was done using curl as well. It is a repeat of the second test, except the replication request was PUT to "_replicate" rather than "_replicator", just like the first test.
It starts at line 912, and looks to be identical to everything in test 2.
It took two seconds, there were only 2 "New task status" messages again.

So, the only difference we see is the script used a header that has a different user-agent (and had a few other minor differences), and posts a replication request JSON which is this:
   {"_id" : "test", 
    "source" : "http://localhost:5984/from",
    "target" : "http://localhost:5984/to", 
    "create_target" : false, 
    "continuous" : false }

Which is slightly more comprehensive than the CURL JSON which is just this:
     {"source":"from","target":"to"}

But these differences should not cause the replication to be 30 times longer, should they?

Any other ideas why one form of replication takes so much longer?

-Scott

-----------------PASTE-----------------------------------------
[Fri, 24 Jan 2014 16:02:43 GMT] [info] [<0.35.0>] Apache CouchDB has started on http://0.0.0.0:5984/
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.122.0>] 'DELETE' /from {1,1} from "127.0.0.1"
Headers: [{'Accept',"*/*"},
          {'Authorization',"Basic YWRtaW46YWRtaW4="},
          {'Host',"127.0.0.1:5984"},
          {'User-Agent',"curl/7.31.0"}]
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.122.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.122.0>] 127.0.0.1 - - DELETE /from 200
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.173.0>] 'DELETE' /to {1,1} from "127.0.0.1"
Headers: [{'Accept',"*/*"},
          {'Authorization',"Basic YWRtaW46YWRtaW4="},
          {'Host',"127.0.0.1:5984"},
          {'User-Agent',"curl/7.31.0"}]
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.173.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.173.0>] 127.0.0.1 - - DELETE /to 200
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.125.0>] 'PUT' /from {1,1} from "127.0.0.1"
Headers: [{'Accept',"*/*"},
          {'Authorization',"Basic YWRtaW46YWRtaW4="},
          {'Host',"127.0.0.1:5984"},
          {'User-Agent',"curl/7.31.0"}]
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.125.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.125.0>] 127.0.0.1 - - PUT /from 201
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.124.0>] 'PUT' /to {1,1} from "127.0.0.1"
Headers: [{'Accept',"*/*"},
          {'Authorization',"Basic YWRtaW46YWRtaW4="},
          {'Host',"127.0.0.1:5984"},
          {'User-Agent',"curl/7.31.0"}]
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.124.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.124.0>] 127.0.0.1 - - PUT /to 201
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.126.0>] 'PUT' /from/test {1,1} from "127.0.0.1"
Headers: [{'Accept',"*/*"},
          {'Authorization',"Basic YWRtaW46YWRtaW4="},
          {'Content-Length',"16"},
          {'Content-Type',"application/x-www-form-urlencoded"},
          {'Host',"127.0.0.1:5984"},
          {'User-Agent',"curl/7.31.0"}]
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.126.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.126.0>] 127.0.0.1 - - PUT /from/test 201
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.127.0>] 'PUT' /from/test/x937?rev=1-23a888c74ba58fe20dc0d424133750bb {1,
                                                                                  1} from "127.0.0.1"
Headers: [{'Accept',"*/*"},
          {'Content-Length',"4185522"},
          {'Content-Type',"application/octet-stream"},
          {"Expect","100-continue"},
          {'Host',"127.0.0.1:5984"},
          {'User-Agent',"curl/7.31.0"}]
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.127.0>] OAuth Params: [{"rev",
                                    "1-23a888c74ba58fe20dc0d424133750bb"}]
[Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.127.0>] 127.0.0.1 - - PUT /from/test/x937?rev=1-23a888c74ba58fe20dc0d424133750bb 201
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.114.0>] 'POST' /_replicate {1,0} from "127.0.0.1"
Headers: [{'Authorization',"Basic cmlhbjpwYXNzd29yZA=="},
          {'Content-Length',"135"},
          {'Content-Type',"application/json"},
          {'Host',"127.0.0.1"}]
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.114.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] 'HEAD' /from/ {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.115.0>] 127.0.0.1 - - HEAD /from/ 200
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] 'HEAD' /to/ {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.117.0>] 127.0.0.1 - - HEAD /to/ 200
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] 'GET' /from/ {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.115.0>] 127.0.0.1 - - GET /from/ 200
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] 'GET' /to/ {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.117.0>] 127.0.0.1 - - GET /to/ 200
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] 'GET' /from/_local/34754f379443f9584e7595cc8de826ff {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] Minor error in HTTP request: {not_found,missing}
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] Stacktrace: [{couch_httpd_db,couch_doc_open,4,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
                                   {line,806}]},
                                 {couch_httpd_db,db_doc_req,3,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
                                   {line,498}]},
                                 {couch_httpd_db,do_db_req,2,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
                                   {line,234}]},
                                 {couch_httpd,handle_request_int,5,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd.erl"},
                                   {line,332}]},
                                 {mochiweb_http,headers,5,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/mochiweb/mochiweb_http.erl"},
                                   {line,94}]},
                                 {proc_lib,init_p_do_apply,3,
                                  [{file,"proc_lib.erl"},{line,239}]}]
[Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.115.0>] 127.0.0.1 - - GET /from/_local/34754f379443f9584e7595cc8de826ff 404
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] httpd 404 error response:
 {"error":"not_found","reason":"missing"}

[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] 'GET' /from/_local/b035f0fbb5d2d5e1afac34f3708e844e {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] Minor error in HTTP request: {not_found,missing}
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] Stacktrace: [{couch_httpd_db,couch_doc_open,4,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
                                   {line,806}]},
                                 {couch_httpd_db,db_doc_req,3,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
                                   {line,498}]},
                                 {couch_httpd_db,do_db_req,2,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
                                   {line,234}]},
                                 {couch_httpd,handle_request_int,5,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd.erl"},
                                   {line,332}]},
                                 {mochiweb_http,headers,5,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/mochiweb/mochiweb_http.erl"},
                                   {line,94}]},
                                 {proc_lib,init_p_do_apply,3,
                                  [{file,"proc_lib.erl"},{line,239}]}]
[Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.115.0>] 127.0.0.1 - - GET /from/_local/b035f0fbb5d2d5e1afac34f3708e844e 404
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] httpd 404 error response:
 {"error":"not_found","reason":"missing"}

[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] 'GET' /from/_local/829e755391ecedb3c3db2f24421f3bcb {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] Minor error in HTTP request: {not_found,missing}
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] Stacktrace: [{couch_httpd_db,couch_doc_open,4,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
                                   {line,806}]},
                                 {couch_httpd_db,db_doc_req,3,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
                                   {line,498}]},
                                 {couch_httpd_db,do_db_req,2,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
                                   {line,234}]},
                                 {couch_httpd,handle_request_int,5,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd.erl"},
                                   {line,332}]},
                                 {mochiweb_http,headers,5,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/mochiweb/mochiweb_http.erl"},
                                   {line,94}]},
                                 {proc_lib,init_p_do_apply,3,
                                  [{file,"proc_lib.erl"},{line,239}]}]
[Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.115.0>] 127.0.0.1 - - GET /from/_local/829e755391ecedb3c3db2f24421f3bcb 404
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.115.0>] httpd 404 error response:
 {"error":"not_found","reason":"missing"}

[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] 'GET' /to/_local/34754f379443f9584e7595cc8de826ff {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] Minor error in HTTP request: {not_found,missing}
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] Stacktrace: [{couch_httpd_db,couch_doc_open,4,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
                                   {line,806}]},
                                 {couch_httpd_db,db_doc_req,3,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
                                   {line,498}]},
                                 {couch_httpd_db,do_db_req,2,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
                                   {line,234}]},
                                 {couch_httpd,handle_request_int,5,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd.erl"},
                                   {line,332}]},
                                 {mochiweb_http,headers,5,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/mochiweb/mochiweb_http.erl"},
                                   {line,94}]},
                                 {proc_lib,init_p_do_apply,3,
                                  [{file,"proc_lib.erl"},{line,239}]}]
[Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.117.0>] 127.0.0.1 - - GET /to/_local/34754f379443f9584e7595cc8de826ff 404
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] httpd 404 error response:
 {"error":"not_found","reason":"missing"}

[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] 'GET' /to/_local/b035f0fbb5d2d5e1afac34f3708e844e {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] Minor error in HTTP request: {not_found,missing}
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] Stacktrace: [{couch_httpd_db,couch_doc_open,4,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
                                   {line,806}]},
                                 {couch_httpd_db,db_doc_req,3,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
                                   {line,498}]},
                                 {couch_httpd_db,do_db_req,2,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
                                   {line,234}]},
                                 {couch_httpd,handle_request_int,5,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd.erl"},
                                   {line,332}]},
                                 {mochiweb_http,headers,5,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/mochiweb/mochiweb_http.erl"},
                                   {line,94}]},
                                 {proc_lib,init_p_do_apply,3,
                                  [{file,"proc_lib.erl"},{line,239}]}]
[Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.117.0>] 127.0.0.1 - - GET /to/_local/b035f0fbb5d2d5e1afac34f3708e844e 404
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] httpd 404 error response:
 {"error":"not_found","reason":"missing"}

[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] 'GET' /to/_local/829e755391ecedb3c3db2f24421f3bcb {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] Minor error in HTTP request: {not_found,missing}
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] Stacktrace: [{couch_httpd_db,couch_doc_open,4,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
                                   {line,806}]},
                                 {couch_httpd_db,db_doc_req,3,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
                                   {line,498}]},
                                 {couch_httpd_db,do_db_req,2,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd_db.erl"},
                                   {line,234}]},
                                 {couch_httpd,handle_request_int,5,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_httpd.erl"},
                                   {line,332}]},
                                 {mochiweb_http,headers,5,
                                  [{file,
                                    "c:/cygwin/relax/APACHE~1.0/src/mochiweb/mochiweb_http.erl"},
                                   {line,94}]},
                                 {proc_lib,init_p_do_apply,3,
                                  [{file,"proc_lib.erl"},{line,239}]}]
[Fri, 24 Jan 2014 16:03:03 GMT] [info] [<0.117.0>] 127.0.0.1 - - GET /to/_local/829e755391ecedb3c3db2f24421f3bcb 404
[Fri, 24 Jan 2014 16:03:03 GMT] [debug] [<0.117.0>] httpd 404 error response:
 {"error":"not_found","reason":"missing"}

[Fri, 24 Jan 2014 16:03:04 GMT] [debug] [<0.119.0>] 'GET' /from/_changes?feed=normal&style=all_docs&since=0&heartbeat=10000 {1,
                                                                                             1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:04 GMT] [debug] [<0.119.0>] OAuth Params: [{"feed","normal"},
                                   {"style","all_docs"},
                                   {"since","0"},
                                   {"heartbeat","10000"}]
[Fri, 24 Jan 2014 16:03:04 GMT] [info] [<0.119.0>] 127.0.0.1 - - GET /from/_changes?feed=normal&style=all_docs&since=0&heartbeat=10000 200
[Fri, 24 Jan 2014 16:03:04 GMT] [info] [<0.203.0>] Replication `"34754f379443f9584e7595cc8de826ff"` is using:
    4 worker processes
    a worker batch size of 500
    20 HTTP connections
    a connection timeout of 30000 milliseconds
    10 retries per request
    socket options are: [{keepalive,true},{nodelay,false}]
[Fri, 24 Jan 2014 16:03:04 GMT] [debug] [<0.203.0>] Worker pids are: [<0.217.0>,<0.219.0>,<0.221.0>,<0.223.0>]
[Fri, 24 Jan 2014 16:03:04 GMT] [info] [<0.114.0>] starting new replication `34754f379443f9584e7595cc8de826ff` at <0.203.0> (`http://localhost:5984/from/` -> `http://localhost:5984/to/`)
[Fri, 24 Jan 2014 16:03:04 GMT] [debug] [<0.117.0>] 'POST' /to/_revs_diff {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"47"},
          {'Content-Type',"application/json"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:04 GMT] [debug] [<0.117.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:04 GMT] [info] [<0.117.0>] 127.0.0.1 - - POST /to/_revs_diff 200
[Fri, 24 Jan 2014 16:03:04 GMT] [debug] [<0.115.0>] 'GET' /from/test?revs=true&open_revs=%5B%222-d598f71bc82752ec68c68645c2bd46d5%22%5D&latest=true {1,
                                                                                                                     1} from "127.0.0.1"
Headers: [{'Accept',"multipart/mixed"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:04 GMT] [debug] [<0.115.0>] OAuth Params: [{"revs","true"},
                                   {"open_revs",
                                    "[\"2-d598f71bc82752ec68c68645c2bd46d5\"]"},
                                   {"latest","true"}]
[Fri, 24 Jan 2014 16:03:04 GMT] [info] [<0.115.0>] 127.0.0.1 - - GET /from/test?revs=true&open_revs=%5B%222-d598f71bc82752ec68c68645c2bd46d5%22%5D&latest=true 200
[Fri, 24 Jan 2014 16:03:04 GMT] [debug] [<0.230.0>] Worker flushing doc with attachments
[Fri, 24 Jan 2014 16:03:04 GMT] [debug] [<0.117.0>] 'PUT' /to/test?new_edits=false {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"4186112"},
          {'Content-Type',"multipart/related; boundary=\"49aeafb3545e308aef185b0c610bd9f0\""},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:04 GMT] [debug] [<0.117.0>] OAuth Params: [{"new_edits","false"}]
[Fri, 24 Jan 2014 16:03:09 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:09 GMT] [debug] [<0.121.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:09 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET /from/ 200
[Fri, 24 Jan 2014 16:03:09 GMT] [debug] [<0.93.0>] New task status for <0.203.0>: [{checkpointed_source_seq,0},
                                                   {continuous,false},
                                                   {doc_id,<<"test">>},
                                                   {doc_write_failures,0},
                                                   {docs_read,0},
                                                   {docs_written,0},
                                                   {missing_revisions_found,0},
                                                   {progress,0},
                                                   {replication_id,
                                                    <<"34754f379443f9584e7595cc8de826ff">>},
                                                   {revisions_checked,0},
                                                   {source,
                                                    <<"http://localhost:5984/from/">>},
                                                   {source_seq,2},
                                                   {started_on,1390579384},
                                                   {target,
                                                    <<"http://localhost:5984/to/">>},
                                                   {type,replication},
                                                   {updated_on,1390579389}]
[Fri, 24 Jan 2014 16:03:14 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:14 GMT] [debug] [<0.121.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:14 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET /from/ 200
[Fri, 24 Jan 2014 16:03:14 GMT] [debug] [<0.93.0>] New task status for <0.203.0>: [{checkpointed_source_seq,0},
                                                   {continuous,false},
                                                   {doc_id,<<"test">>},
                                                   {doc_write_failures,0},
                                                   {docs_read,0},
                                                   {docs_written,0},
                                                   {missing_revisions_found,0},
                                                   {progress,0},
                                                   {replication_id,
                                                    <<"34754f379443f9584e7595cc8de826ff">>},
                                                   {revisions_checked,0},
                                                   {source,
                                                    <<"http://localhost:5984/from/">>},
                                                   {source_seq,2},
                                                   {started_on,1390579384},
                                                   {target,
                                                    <<"http://localhost:5984/to/">>},
                                                   {type,replication},
                                                   {updated_on,1390579394}]
[Fri, 24 Jan 2014 16:03:19 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:19 GMT] [debug] [<0.121.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:19 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET /from/ 200
[Fri, 24 Jan 2014 16:03:19 GMT] [debug] [<0.93.0>] New task status for <0.203.0>: [{checkpointed_source_seq,0},
                                                   {continuous,false},
                                                   {doc_id,<<"test">>},
                                                   {doc_write_failures,0},
                                                   {docs_read,0},
                                                   {docs_written,0},
                                                   {missing_revisions_found,0},
                                                   {progress,0},
                                                   {replication_id,
                                                    <<"34754f379443f9584e7595cc8de826ff">>},
                                                   {revisions_checked,0},
                                                   {source,
                                                    <<"http://localhost:5984/from/">>},
                                                   {source_seq,2},
                                                   {started_on,1390579384},
                                                   {target,
                                                    <<"http://localhost:5984/to/">>},
                                                   {type,replication},
                                                   {updated_on,1390579399}]
[Fri, 24 Jan 2014 16:03:24 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:24 GMT] [debug] [<0.121.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:24 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET /from/ 200
[Fri, 24 Jan 2014 16:03:24 GMT] [debug] [<0.93.0>] New task status for <0.203.0>: [{checkpointed_source_seq,0},
                                                   {continuous,false},
                                                   {doc_id,<<"test">>},
                                                   {doc_write_failures,0},
                                                   {docs_read,0},
                                                   {docs_written,0},
                                                   {missing_revisions_found,0},
                                                   {progress,0},
                                                   {replication_id,
                                                    <<"34754f379443f9584e7595cc8de826ff">>},
                                                   {revisions_checked,0},
                                                   {source,
                                                    <<"http://localhost:5984/from/">>},
                                                   {source_seq,2},
                                                   {started_on,1390579384},
                                                   {target,
                                                    <<"http://localhost:5984/to/">>},
                                                   {type,replication},
                                                   {updated_on,1390579404}]
[Fri, 24 Jan 2014 16:03:29 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:29 GMT] [debug] [<0.121.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:29 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET /from/ 200
[Fri, 24 Jan 2014 16:03:29 GMT] [debug] [<0.93.0>] New task status for <0.203.0>: [{checkpointed_source_seq,0},
                                                   {continuous,false},
                                                   {doc_id,<<"test">>},
                                                   {doc_write_failures,0},
                                                   {docs_read,0},
                                                   {docs_written,0},
                                                   {missing_revisions_found,0},
                                                   {progress,0},
                                                   {replication_id,
                                                    <<"34754f379443f9584e7595cc8de826ff">>},
                                                   {revisions_checked,0},
                                                   {source,
                                                    <<"http://localhost:5984/from/">>},
                                                   {source_seq,2},
                                                   {started_on,1390579384},
                                                   {target,
                                                    <<"http://localhost:5984/to/">>},
                                                   {type,replication},
                                                   {updated_on,1390579409}]
[Fri, 24 Jan 2014 16:03:34 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:34 GMT] [debug] [<0.121.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:34 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET /from/ 200
[Fri, 24 Jan 2014 16:03:34 GMT] [debug] [<0.93.0>] New task status for <0.203.0>: [{checkpointed_source_seq,0},
                                                   {continuous,false},
                                                   {doc_id,<<"test">>},
                                                   {doc_write_failures,0},
                                                   {docs_read,0},
                                                   {docs_written,0},
                                                   {missing_revisions_found,0},
                                                   {progress,0},
                                                   {replication_id,
                                                    <<"34754f379443f9584e7595cc8de826ff">>},
                                                   {revisions_checked,0},
                                                   {source,
                                                    <<"http://localhost:5984/from/">>},
                                                   {source_seq,2},
                                                   {started_on,1390579384},
                                                   {target,
                                                    <<"http://localhost:5984/to/">>},
                                                   {type,replication},
                                                   {updated_on,1390579414}]
[Fri, 24 Jan 2014 16:03:39 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:39 GMT] [debug] [<0.121.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:39 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET /from/ 200
[Fri, 24 Jan 2014 16:03:39 GMT] [debug] [<0.93.0>] New task status for <0.203.0>: [{checkpointed_source_seq,0},
                                                   {continuous,false},
                                                   {doc_id,<<"test">>},
                                                   {doc_write_failures,0},
                                                   {docs_read,0},
                                                   {docs_written,0},
                                                   {missing_revisions_found,0},
                                                   {progress,0},
                                                   {replication_id,
                                                    <<"34754f379443f9584e7595cc8de826ff">>},
                                                   {revisions_checked,0},
                                                   {source,
                                                    <<"http://localhost:5984/from/">>},
                                                   {source_seq,2},
                                                   {started_on,1390579384},
                                                   {target,
                                                    <<"http://localhost:5984/to/">>},
                                                   {type,replication},
                                                   {updated_on,1390579419}]
[Fri, 24 Jan 2014 16:03:44 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:44 GMT] [debug] [<0.121.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:44 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET /from/ 200
[Fri, 24 Jan 2014 16:03:44 GMT] [debug] [<0.93.0>] New task status for <0.203.0>: [{checkpointed_source_seq,0},
                                                   {continuous,false},
                                                   {doc_id,<<"test">>},
                                                   {doc_write_failures,0},
                                                   {docs_read,0},
                                                   {docs_written,0},
                                                   {missing_revisions_found,0},
                                                   {progress,0},
                                                   {replication_id,
                                                    <<"34754f379443f9584e7595cc8de826ff">>},
                                                   {revisions_checked,0},
                                                   {source,
                                                    <<"http://localhost:5984/from/">>},
                                                   {source_seq,2},
                                                   {started_on,1390579384},
                                                   {target,
                                                    <<"http://localhost:5984/to/">>},
                                                   {type,replication},
                                                   {updated_on,1390579424}]
[Fri, 24 Jan 2014 16:03:49 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:49 GMT] [debug] [<0.121.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:49 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET /from/ 200
[Fri, 24 Jan 2014 16:03:49 GMT] [debug] [<0.93.0>] New task status for <0.203.0>: [{checkpointed_source_seq,0},
                                                   {continuous,false},
                                                   {doc_id,<<"test">>},
                                                   {doc_write_failures,0},
                                                   {docs_read,0},
                                                   {docs_written,0},
                                                   {missing_revisions_found,0},
                                                   {progress,0},
                                                   {replication_id,
                                                    <<"34754f379443f9584e7595cc8de826ff">>},
                                                   {revisions_checked,0},
                                                   {source,
                                                    <<"http://localhost:5984/from/">>},
                                                   {source_seq,2},
                                                   {started_on,1390579384},
                                                   {target,
                                                    <<"http://localhost:5984/to/">>},
                                                   {type,replication},
                                                   {updated_on,1390579429}]
[Fri, 24 Jan 2014 16:03:54 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:54 GMT] [debug] [<0.121.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:54 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET /from/ 200
[Fri, 24 Jan 2014 16:03:54 GMT] [debug] [<0.93.0>] New task status for <0.203.0>: [{checkpointed_source_seq,0},
                                                   {continuous,false},
                                                   {doc_id,<<"test">>},
                                                   {doc_write_failures,0},
                                                   {docs_read,0},
                                                   {docs_written,0},
                                                   {missing_revisions_found,0},
                                                   {progress,0},
                                                   {replication_id,
                                                    <<"34754f379443f9584e7595cc8de826ff">>},
                                                   {revisions_checked,0},
                                                   {source,
                                                    <<"http://localhost:5984/from/">>},
                                                   {source_seq,2},
                                                   {started_on,1390579384},
                                                   {target,
                                                    <<"http://localhost:5984/to/">>},
                                                   {type,replication},
                                                   {updated_on,1390579434}]
[Fri, 24 Jan 2014 16:03:59 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:03:59 GMT] [debug] [<0.121.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:03:59 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET /from/ 200
[Fri, 24 Jan 2014 16:03:59 GMT] [debug] [<0.93.0>] New task status for <0.203.0>: [{checkpointed_source_seq,0},
                                                   {continuous,false},
                                                   {doc_id,<<"test">>},
                                                   {doc_write_failures,0},
                                                   {docs_read,0},
                                                   {docs_written,0},
                                                   {missing_revisions_found,0},
                                                   {progress,0},
                                                   {replication_id,
                                                    <<"34754f379443f9584e7595cc8de826ff">>},
                                                   {revisions_checked,0},
                                                   {source,
                                                    <<"http://localhost:5984/from/">>},
                                                   {source_seq,2},
                                                   {started_on,1390579384},
                                                   {target,
                                                    <<"http://localhost:5984/to/">>},
                                                   {type,replication},
                                                   {updated_on,1390579439}]
[Fri, 24 Jan 2014 16:04:04 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:04:04 GMT] [debug] [<0.121.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:04:04 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET /from/ 200
[Fri, 24 Jan 2014 16:04:04 GMT] [debug] [<0.93.0>] New task status for <0.203.0>: [{checkpointed_source_seq,0},
                                                   {continuous,false},
                                                   {doc_id,<<"test">>},
                                                   {doc_write_failures,0},
                                                   {docs_read,0},
                                                   {docs_written,0},
                                                   {missing_revisions_found,0},
                                                   {progress,0},
                                                   {replication_id,
                                                    <<"34754f379443f9584e7595cc8de826ff">>},
                                                   {revisions_checked,0},
                                                   {source,
                                                    <<"http://localhost:5984/from/">>},
                                                   {source_seq,2},
                                                   {started_on,1390579384},
                                                   {target,
                                                    <<"http://localhost:5984/to/">>},
                                                   {type,replication},
                                                   {updated_on,1390579444}]
[Fri, 24 Jan 2014 16:04:09 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:04:09 GMT] [debug] [<0.121.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:04:09 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET /from/ 200
[Fri, 24 Jan 2014 16:04:09 GMT] [debug] [<0.93.0>] New task status for <0.203.0>: [{checkpointed_source_seq,0},
                                                   {continuous,false},
                                                   {doc_id,<<"test">>},
                                                   {doc_write_failures,0},
                                                   {docs_read,0},
                                                   {docs_written,0},
                                                   {missing_revisions_found,0},
                                                   {progress,0},
                                                   {replication_id,
                                                    <<"34754f379443f9584e7595cc8de826ff">>},
                                                   {revisions_checked,0},
                                                   {source,
                                                    <<"http://localhost:5984/from/">>},
                                                   {source_seq,2},
                                                   {started_on,1390579384},
                                                   {target,
                                                    <<"http://localhost:5984/to/">>},
                                                   {type,replication},
                                                   {updated_on,1390579449}]
[Fri, 24 Jan 2014 16:04:14 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:04:14 GMT] [debug] [<0.121.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:04:14 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET /from/ 200
[Fri, 24 Jan 2014 16:04:14 GMT] [debug] [<0.93.0>] New task status for <0.203.0>: [{checkpointed_source_seq,0},
                                                   {continuous,false},
                                                   {doc_id,<<"test">>},
                                                   {doc_write_failures,0},
                                                   {docs_read,0},
                                                   {docs_written,0},
                                                   {missing_revisions_found,0},
                                                   {progress,0},
                                                   {replication_id,
                                                    <<"34754f379443f9584e7595cc8de826ff">>},
                                                   {revisions_checked,0},
                                                   {source,
                                                    <<"http://localhost:5984/from/">>},
                                                   {source_seq,2},
                                                   {started_on,1390579384},
                                                   {target,
                                                    <<"http://localhost:5984/to/">>},
                                                   {type,replication},
                                                   {updated_on,1390579454}]
[Fri, 24 Jan 2014 16:04:16 GMT] [info] [<0.117.0>] 127.0.0.1 - - PUT /to/test?new_edits=false 201
[Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.218.0>] Worker reported completion of seq {1,2}
[Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.203.0>] Worker reported seq {1,2}, through seq was {0,0}, new through seq is {1,
                                                                                          2}, highest seq done was {0,
                                                                                                                    0}, new highest seq done is {1,
                                                                                                                                                 2}
Seqs in progress were: [{1,2}]
Seqs in progress are now: []
[Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.121.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:04:16 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET /from/ 200
[Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.93.0>] New task status for <0.203.0>: [{checkpointed_source_seq,0},
                                                   {continuous,false},
                                                   {doc_id,<<"test">>},
                                                   {doc_write_failures,0},
                                                   {docs_read,1},
                                                   {docs_written,1},
                                                   {missing_revisions_found,1},
                                                   {progress,100},
                                                   {replication_id,
                                                    <<"34754f379443f9584e7595cc8de826ff">>},
                                                   {revisions_checked,1},
                                                   {source,
                                                    <<"http://localhost:5984/from/">>},
                                                   {source_seq,2},
                                                   {started_on,1390579384},
                                                   {target,
                                                    <<"http://localhost:5984/to/">>},
                                                   {type,replication},
                                                   {updated_on,1390579456}]
[Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.121.0>] 'POST' /from/_ensure_full_commit {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Content-Type',"application/json"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.117.0>] 'POST' /to/_ensure_full_commit {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Content-Type',"application/json"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.121.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.117.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:04:16 GMT] [info] [<0.121.0>] 127.0.0.1 - - POST /from/_ensure_full_commit 201
[Fri, 24 Jan 2014 16:04:16 GMT] [info] [<0.117.0>] 127.0.0.1 - - POST /to/_ensure_full_commit 201
[Fri, 24 Jan 2014 16:04:16 GMT] [info] [<0.203.0>] recording a checkpoint for `http://localhost:5984/from/` -> `http://localhost:5984/to/` at source update_seq 2
[Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.121.0>] 'PUT' /from/_local/34754f379443f9584e7595cc8de826ff {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"473"},
          {'Content-Type',"application/json"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"},
          {"X-Couch-Full-Commit","false"}]
[Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.121.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:04:16 GMT] [info] [<0.121.0>] 127.0.0.1 - - PUT /from/_local/34754f379443f9584e7595cc8de826ff 201
[Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.117.0>] 'PUT' /to/_local/34754f379443f9584e7595cc8de826ff {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"473"},
          {'Content-Type',"application/json"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"},
          {"X-Couch-Full-Commit","false"}]
[Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.117.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:04:16 GMT] [info] [<0.117.0>] 127.0.0.1 - - PUT /to/_local/34754f379443f9584e7595cc8de826ff 201
[Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.121.0>] 'GET' /from/ {1,1} from "127.0.0.1"
Headers: [{'Accept',"application/json"},
          {'Content-Length',"0"},
          {'Host',"localhost:5984"},
          {'User-Agent',"CouchDB/1.5.0"}]
[Fri, 24 Jan 2014 16:04:16 GMT] [debug] [<0.121.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:04:16 GMT] [info] [<0.121.0>] 127.0.0.1 - - GET /from/ 200
[Fri, 24 Jan 2014 16:04:16 GMT] [info] [<0.114.0>] 127.0.0.1 - - POST /_replicate 200
[Fri, 24 Jan 2014 16:17:27 GMT] [debug] [<0.241.0>] 'DELETE' /from {1,1} from "127.0.0.1"
Headers: [{'Accept',"*/*"},
          {'Authorization',"Basic YWRtaW46YWRtaW4="},
          {'Host',"127.0.0.1:5984"},
          {'User-Agent',"curl/7.31.0"}]
[Fri, 24 Jan 2014 16:17:27 GMT] [debug] [<0.241.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:17:27 GMT] [info] [<0.241.0>] 127.0.0.1 - - DELETE /from 200
[Fri, 24 Jan 2014 16:17:27 GMT] [debug] [<0.120.0>] 'DELETE' /to {1,1} from "127.0.0.1"
Headers: [{'Accept',"*/*"},
          {'Authorization',"Basic YWRtaW46YWRtaW4="},
          {'Host',"127.0.0.1:5984"},
          {'User-Agent',"curl/7.31.0"}]
[Fri, 24 Jan 2014 16:17:27 GMT] [debug] [<0.120.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:17:27 GMT] [info] [<0.120.0>] 127.0.0.1 - - DELETE /to 200
[Fri, 24 Jan 2014 16:17:27 GMT] [debug] [<0.118.0>] 'PUT' /from {1,1} from "127.0.0.1"
Headers: [{'Accept',"*/*"},
          {'Authorization',"Basic YWRtaW46YWRtaW4="},
          {'Host',"127.0.0.1:5984"},
          {'User-Agent',"curl/7.31.0"}]
[Fri, 24 Jan 2014 16:17:27 GMT] [debug] [<0.118.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:17:27 GMT] [info] [<0.118.0>] 127.0.0.1 - - PUT /from 201
[Fri, 24 Jan 2014 16:17:27 GMT] [debug] [<0.116.0>] 'PUT' /to {1,1} from "127.0.0.1"
Headers: [{'Accept',"*/*"},
          {'Authorization',"Basic YWRtaW46YWRtaW4="},
          {'Host',"127.0.0.1:5984"},
          {'User-Agent',"curl/7.31.0"}]
[Fri, 24 Jan 2014 16:17:27 GMT] [debug] [<0.116.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:17:27 GMT] [info] [<0.116.0>] 127.0.0.1 - - PUT /to 201
[Fri, 24 Jan 2014 16:17:27 GMT] [debug] [<0.113.0>] 'PUT' /from/test {1,1} from "127.0.0.1"
Headers: [{'Accept',"*/*"},
          {'Authorization',"Basic YWRtaW46YWRtaW4="},
          {'Content-Length',"16"},
          {'Content-Type',"application/x-www-form-urlencoded"},
          {'Host',"127.0.0.1:5984"},
          {'User-Agent',"curl/7.31.0"}]
[Fri, 24 Jan 2014 16:17:27 GMT] [debug] [<0.113.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:17:27 GMT] [info] [<0.113.0>] 127.0.0.1 - - PUT /from/test 201
[Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.112.0>] 'PUT' /from/test/x937?rev=1-23a888c74ba58fe20dc0d424133750bb {1,
                                                                                  1} from "127.0.0.1"
Headers: [{'Accept',"*/*"},
          {'Content-Length',"4185522"},
          {'Content-Type',"application/octet-stream"},
          {"Expect","100-continue"},
          {'Host',"127.0.0.1:5984"},
          {'User-Agent',"curl/7.31.0"}]
[Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.112.0>] OAuth Params: [{"rev",
                                    "1-23a888c74ba58fe20dc0d424133750bb"}]
[Fri, 24 Jan 2014 16:17:28 GMT] [info] [<0.112.0>] 127.0.0.1 - - PUT /from/test/x937?rev=1-23a888c74ba58fe20dc0d424133750bb 201
[Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.123.0>] 'PUT' /_replicator/test_slow {1,1} from "127.0.0.1"
Headers: [{'Accept',"*/*"},
          {'Authorization',"Basic YWRtaW46YWRtaW4="},
          {'Content-Length',"31"},
          {'Content-Type',"application/x-www-form-urlencoded"},
          {'Host',"127.0.0.1:5984"},
          {'User-Agent',"curl/7.31.0"}]
[Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.123.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1148.0>] OS Process Start :: #Port<0.5880>
[Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.104.0>] Teach ddoc to new proc {proc,<0.1148.0>,<<"javascript">>,
                                            [],
                                            {couch_os_process,prompt},
                                            {couch_os_process,set_timeout},
                                            {couch_os_process,stop}} with DDocKey: {<<"_design/_replicator">>,
                                                                                    <<"1-5bfa2c99eefe2b2eb4962db50aa3cfd4">>}
[Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1148.0>] OS Process #Port<0.5880> Input  :: ["ddoc","new","_design/_replicator",{"_id":"_design/_replicator","_rev":"1-5bfa2c99eefe2b2eb4962db50aa3cfd4","language":"javascript","validate_doc_update":"\n    function(newDoc, oldDoc, userCtx) {\n        function reportError(error_msg) {\n            log('Error writing document `' + newDoc._id +\n                '\\' to the replicator database: ' + error_msg);\n            throw({forbidden: error_msg});\n        }\n\n        function validateEndpoint(endpoint, fieldName) {\n            if ((typeof endpoint !== 'string') &&\n                ((typeof endpoint !== 'object') || (endpoint === null))) {\n\n                reportError('The `' + fieldName + '\\' property must exist' +\n                    ' and be either a string or an
 object.');\n            }\n\n            if (typeof endpoint === 'object') {\n                if ((typeof endpoint.url !== 'string') || !endpoint.url) {\n                    reportError('The url property must exist in the `' +\n                        fieldName + '\\' field and must be a non-empty string.');\n                }\n\n                if ((typeof endpoint.auth !== 'undefined') &&\n                    ((typeof endpoint.auth !== 'object') ||\n                        endpoint.auth === null)) {\n\n                    reportError('`' + fieldName +\n                        '.auth\\' must be a non-null object.');\n                }\n\n                if ((typeof endpoint.headers !== 'undefined')
 &&\n                    ((typeof endpoint.headers !== 'object') ||\n                        endpoint.headers === null)) {\n\n                    reportError('`' + fieldName +\n                        '.headers\\' must be a non-null object.');\n                }\n            }\n        }\n\n        var isReplicator = (userCtx.roles.indexOf('_replicator') >= 0);\n        var isAdmin = (userCtx.roles.indexOf('_admin') >= 0);\n\n        if (oldDoc && !newDoc._deleted && !isReplicator &&\n            (oldDoc._replication_state === 'triggered')) {\n            reportError('Only the replicator can edit replication documents ' +\n                'that are in the triggered state.');\n        }\n\n        if (!newDoc._deleted) {\n           
 validateEndpoint(newDoc.source, 'source');\n            validateEndpoint(newDoc.target, 'target');\n\n            if ((typeof newDoc.create_target !== 'undefined') &&\n                (typeof newDoc.create_target !== 'boolean')) {\n\n                reportError('The `create_target\\' field must be a boolean.');\n            }\n\n            if ((typeof newDoc.continuous !== 'undefined') &&\n                (typeof newDoc.continuous !== 'boolean')) {\n\n                reportError('The `continuous\\' field must be a boolean.');\n            }\n\n            if ((typeof newDoc.doc_ids !== 'undefined') &&\n                !isArray(newDoc.doc_ids)) {\n\n                reportError('The `doc_ids\\' field must be an array of strings.');\n            }\n\n            if ((typeof
 newDoc.filter !== 'undefined') &&\n                ((typeof newDoc.filter !== 'string') || !newDoc.filter)) {\n\n                reportError('The `filter\\' field must be a non-empty string.');\n            }\n\n            if ((typeof newDoc.query_params !== 'undefined') &&\n                ((typeof newDoc.query_params !== 'object') ||\n                    newDoc.query_params === null)) {\n\n                reportError('The `query_params\\' field must be an object.');\n            }\n\n            if (newDoc.user_ctx) {\n                var user_ctx = newDoc.user_ctx;\n\n                if ((typeof user_ctx !== 'object') || (user_ctx === null)) {\n                    reportError('The `user_ctx\\' property must be a ' +\n                        'non-null
 object.');\n                }\n\n                if (!(user_ctx.name === null ||\n                    (typeof user_ctx.name === 'undefined') ||\n                    ((typeof user_ctx.name === 'string') &&\n                        user_ctx.name.length > 0))) {\n\n                    reportError('The `user_ctx.name\\' property must be a ' +\n                        'non-empty string or null.');\n                }\n\n                if (!isAdmin && (user_ctx.name !== userCtx.name)) {\n                    reportError('The given `user_ctx.name\\' is not valid');\n                }\n\n                if (user_ctx.roles && !isArray(user_ctx.roles)) {\n                    reportError('The `user_ctx.roles\\' property must be '
 +\n                        'an array of strings.');\n                }\n\n                if (!isAdmin && user_ctx.roles) {\n                    for (var i = 0; i < user_ctx.roles.length; i++) {\n                        var role = user_ctx.roles[i];\n\n                        if (typeof role !== 'string' || role.length === 0) {\n                            reportError('Roles must be non-empty strings.');\n                        }\n                        if (userCtx.roles.indexOf(role) === -1) {\n                            reportError('Invalid role (`' + role +\n                                '\\') in the `user_ctx\\'');\n                       
 }\n                    }\n                }\n            } else {\n                if (!isAdmin) {\n                    reportError('The `user_ctx\\' property is missing (it is ' +\n                       'optional for admins only).');\n                }\n            }\n        } else {\n            if (!isAdmin) {\n                if (!oldDoc.user_ctx || (oldDoc.user_ctx.name !== userCtx.name)) {\n                    reportError('Replication documents can only be deleted by ' +\n                        'admins or by the users who created them.');\n                }\n            }\n        }\n    }\n"}]
[Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1148.0>] OS Process #Port<0.5880> Output :: true
[Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1148.0>] OS Process #Port<0.5880> Input  :: ["reset",{"reduce_limit":true,"timeout":600000}]
[Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1148.0>] OS Process #Port<0.5880> Output :: true
[Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1148.0>] OS Process #Port<0.5880> Input  :: ["ddoc","_design/_replicator",["validate_doc_update"],[{"_id":"test_slow","source":"from","target":"to","owner":"admin","_revisions":{"start":0,"ids":[]}},null,{"db":"_replicator","name":"admin","roles":["_admin"]},{}]]
[Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1148.0>] OS Process #Port<0.5880> Output :: 1
[Fri, 24 Jan 2014 16:17:28 GMT] [info] [<0.123.0>] 127.0.0.1 - - PUT /_replicator/test_slow 201
[Fri, 24 Jan 2014 16:17:28 GMT] [info] [<0.141.0>] Attempting to start replication `2c7e8c1e1f8e0dde2e29b03395320da4` (document `test_slow`).
[Fri, 24 Jan 2014 16:17:28 GMT] [info] [<0.1151.0>] Replication `"2c7e8c1e1f8e0dde2e29b03395320da4"` is using:
    4 worker processes
    a worker batch size of 500
    20 HTTP connections
    a connection timeout of 30000 milliseconds
    10 retries per request
    socket options are: [{keepalive,true},{nodelay,false}]
[Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1151.0>] Worker pids are: [<0.1157.0>,<0.1158.0>,<0.1159.0>,
                                       <0.1160.0>]
[Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1157.0>] Worker flushing doc with attachments
[Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.104.0>] DDocProc found for DDocKey: {<<"_design/_replicator">>,
                                                 <<"1-5bfa2c99eefe2b2eb4962db50aa3cfd4">>}
[Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1148.0>] OS Process #Port<0.5880> Input  :: ["reset",{"reduce_limit":true,"timeout":600000}]
[Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1148.0>] OS Process #Port<0.5880> Output :: true
[Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1148.0>] OS Process #Port<0.5880> Input  ::
 ["ddoc","_design/_replicator",["validate_doc_update"],[{"_id":"test_slow","_rev":"9-e8771f3a7da376bf5ec7de6d0621e094","source":"from","target":"to","owner":"admin","_replication_state":"triggered","_replication_state_time":"2014-01-24T10:17:28-06:00","_replication_id":"2c7e8c1e1f8e0dde2e29b03395320da4","_revisions":{"start":9,"ids":["e8771f3a7da376bf5ec7de6d0621e094","bc6b5a78f5aca5df6186f319bdfff864","b13beb5b518d56958c6f686712512608","0fceb2c155368db6f57f9236244f92ee","c458b4d077f9a36c2aa5f90ffad0722e","c8ce2f3c769aa5080587f2223c5a2fa1","eecc4a3518160cd983b2bd7f01f3b166","7b75ee746380c1a791f5e9f2fb4a2386","5c3c9988bbf8fd048bdde2d7ecab7dd6"]}},{"_id":"test_slow","_rev":"9-e8771f3a7da376bf5ec7de6d0621e094","source":"from","target":"to","owner":"admin","_revisions":{"start":9,"ids":["e8771f3a7da376bf5ec7de6d0621e094","bc6b5a78f5aca5df6186f319bdfff864","b13beb5b518d56958c6f686712512608","0fceb2c155368db6f57f9236244f92ee","c458b4d077f9a36c2aa5f90ffad0722e
","c8ce2f3c769aa5080587f2223c5a2fa1","eecc4a3518160cd983b2bd7f01f3b166","7b75ee746380c1a791f5e9f2fb4a2386","5c3c9988bbf8fd048bdde2d7ecab7dd6"]}},{"db":"_replicator","name":null,"roles":["_admin","_replicator"]},{}]]
[Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1148.0>] OS Process #Port<0.5880> Output :: 1
[Fri, 24 Jan 2014 16:17:28 GMT] [info] [<0.1151.0>] Document `test_slow` triggered replication `2c7e8c1e1f8e0dde2e29b03395320da4`
[Fri, 24 Jan 2014 16:17:28 GMT] [info] [<0.1150.0>] starting new replication `2c7e8c1e1f8e0dde2e29b03395320da4` at <0.1151.0> (`from` -> `to`)
[Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1157.0>] Worker reported completion of seq {1,2}
[Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.1151.0>] Worker reported seq {1,2}, through seq was {0,0}, new through seq is {1,
                                                                                           2}, highest seq done was {0,
                                                                                                                     0}, new highest seq done is {1,
                                                                                                                                                  2}
Seqs in progress were: [{1,2}]
Seqs in progress are now: []
[Fri, 24 Jan 2014 16:17:28 GMT] [debug] [<0.93.0>] New task status for <0.1151.0>: [{checkpointed_source_seq,
                                                     0},
                                                    {continuous,false},
                                                    {doc_id,<<"test_slow">>},
                                                    {doc_write_failures,0},
                                                    {docs_read,1},
                                                    {docs_written,1},
                                                    {missing_revisions_found,
                                                     1},
                                                    {progress,100},
                                                    {replication_id,
                                                     <<"2c7e8c1e1f8e0dde2e29b03395320da4">>},
                                                    {revisions_checked,1},
                                                    {source,<<"from">>},
                                                    {source_seq,2},
                                                    {started_on,1390580248},
                                                    {target,<<"to">>},
                                                    {type,replication},
                                                    {updated_on,1390580248}]
[Fri, 24 Jan 2014 16:17:30 GMT] [info] [<0.1151.0>] recording a checkpoint for `from` -> `to` at source update_seq 2
[Fri, 24 Jan 2014 16:17:30 GMT] [debug] [<0.93.0>] New task status for <0.1151.0>: [{checkpointed_source_seq,
                                                     2},
                                                    {continuous,false},
                                                    {doc_id,<<"test_slow">>},
                                                    {doc_write_failures,0},
                                                    {docs_read,1},
                                                    {docs_written,1},
                                                    {missing_revisions_found,
                                                     1},
                                                    {progress,100},
                                                    {replication_id,
                                                     <<"2c7e8c1e1f8e0dde2e29b03395320da4">>},
                                                    {revisions_checked,1},
                                                    {source,<<"from">>},
                                                    {source_seq,2},
                                                    {started_on,1390580248},
                                                    {target,<<"to">>},
                                                    {type,replication},
                                                    {updated_on,1390580250}]
[Fri, 24 Jan 2014 16:17:30 GMT] [debug] [<0.104.0>] DDocProc found for DDocKey: {<<"_design/_replicator">>,
                                                 <<"1-5bfa2c99eefe2b2eb4962db50aa3cfd4">>}
[Fri, 24 Jan 2014 16:17:30 GMT] [debug] [<0.1148.0>] OS Process #Port<0.5880> Input  :: ["reset",{"reduce_limit":true,"timeout":600000}]
[Fri, 24 Jan 2014 16:17:30 GMT] [debug] [<0.1148.0>] OS Process #Port<0.5880> Output :: true
[Fri, 24 Jan 2014 16:17:30 GMT] [debug] [<0.1148.0>] OS Process #Port<0.5880> Input  ::
 ["ddoc","_design/_replicator",["validate_doc_update"],[{"_id":"test_slow","_rev":"10-5ec32fc496eaa6af8e0af0ff9e75ec16","source":"from","target":"to","owner":"admin","_replication_state":"completed","_replication_state_time":"2014-01-24T10:17:30-06:00","_replication_id":"2c7e8c1e1f8e0dde2e29b03395320da4","_replication_stats":{"revisions_checked":1,"missing_revisions_found":1,"docs_read":1,"docs_written":1,"doc_write_failures":0,"checkpointed_source_seq":2},"_revisions":{"start":10,"ids":["5ec32fc496eaa6af8e0af0ff9e75ec16","e8771f3a7da376bf5ec7de6d0621e094","bc6b5a78f5aca5df6186f319bdfff864","b13beb5b518d56958c6f686712512608","0fceb2c155368db6f57f9236244f92ee","c458b4d077f9a36c2aa5f90ffad0722e","c8ce2f3c769aa5080587f2223c5a2fa1","eecc4a3518160cd983b2bd7f01f3b166","7b75ee746380c1a791f5e9f2fb4a2386","5c3c9988bbf8fd048bdde2d7ecab7dd6"]}},{"_id":"test_slow","_rev":"10-5ec32fc496eaa6af8e0af0ff9e75ec16","source":"from","target":"to","owner":"admin","_replicati
on_state":"triggered","_replication_state_time":"2014-01-24T10:17:28-06:00","_replication_id":"2c7e8c1e1f8e0dde2e29b03395320da4","_revisions":{"start":10,"ids":["5ec32fc496eaa6af8e0af0ff9e75ec16","e8771f3a7da376bf5ec7de6d0621e094","bc6b5a78f5aca5df6186f319bdfff864","b13beb5b518d56958c6f686712512608","0fceb2c155368db6f57f9236244f92ee","c458b4d077f9a36c2aa5f90ffad0722e","c8ce2f3c769aa5080587f2223c5a2fa1","eecc4a3518160cd983b2bd7f01f3b166","7b75ee746380c1a791f5e9f2fb4a2386","5c3c9988bbf8fd048bdde2d7ecab7dd6"]}},{"db":"_replicator","name":null,"roles":["_admin","_replicator"]},{}]]
[Fri, 24 Jan 2014 16:17:30 GMT] [debug] [<0.1148.0>] OS Process #Port<0.5880> Output :: 1
[Fri, 24 Jan 2014 16:17:30 GMT] [info] [<0.1151.0>] Replication `2c7e8c1e1f8e0dde2e29b03395320da4` finished (triggered by document `test_slow`)
[Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1119.0>] 'DELETE' /from {1,1} from "127.0.0.1"
Headers: [{'Accept',"*/*"},
          {'Authorization',"Basic YWRtaW46YWRtaW4="},
          {'Host',"127.0.0.1:5984"},
          {'User-Agent',"curl/7.31.0"}]
[Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1119.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:26:38 GMT] [info] [<0.1119.0>] 127.0.0.1 - - DELETE /from 200
[Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1122.0>] 'DELETE' /to {1,1} from "127.0.0.1"
Headers: [{'Accept',"*/*"},
          {'Authorization',"Basic YWRtaW46YWRtaW4="},
          {'Host',"127.0.0.1:5984"},
          {'User-Agent',"curl/7.31.0"}]
[Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1122.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:26:38 GMT] [info] [<0.1122.0>] 127.0.0.1 - - DELETE /to 200
[Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1124.0>] 'PUT' /from {1,1} from "127.0.0.1"
Headers: [{'Accept',"*/*"},
          {'Authorization',"Basic YWRtaW46YWRtaW4="},
          {'Host',"127.0.0.1:5984"},
          {'User-Agent',"curl/7.31.0"}]
[Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1124.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:26:38 GMT] [info] [<0.1124.0>] 127.0.0.1 - - PUT /from 201
[Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1134.0>] 'PUT' /to {1,1} from "127.0.0.1"
Headers: [{'Accept',"*/*"},
          {'Authorization',"Basic YWRtaW46YWRtaW4="},
          {'Host',"127.0.0.1:5984"},
          {'User-Agent',"curl/7.31.0"}]
[Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1134.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:26:38 GMT] [info] [<0.1134.0>] 127.0.0.1 - - PUT /to 201
[Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1144.0>] 'PUT' /from/test {1,1} from "127.0.0.1"
Headers: [{'Accept',"*/*"},
          {'Authorization',"Basic YWRtaW46YWRtaW4="},
          {'Content-Length',"16"},
          {'Content-Type',"application/x-www-form-urlencoded"},
          {'Host',"127.0.0.1:5984"},
          {'User-Agent',"curl/7.31.0"}]
[Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1144.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:26:38 GMT] [info] [<0.1144.0>] 127.0.0.1 - - PUT /from/test 201
[Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1145.0>] 'PUT' /from/test/x937?rev=1-23a888c74ba58fe20dc0d424133750bb {1,
                                                                                   1} from "127.0.0.1"
Headers: [{'Accept',"*/*"},
          {'Content-Length',"4185522"},
          {'Content-Type',"application/octet-stream"},
          {"Expect","100-continue"},
          {'Host',"127.0.0.1:5984"},
          {'User-Agent',"curl/7.31.0"}]
[Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1145.0>] OAuth Params: [{"rev",
                                     "1-23a888c74ba58fe20dc0d424133750bb"}]
[Fri, 24 Jan 2014 16:26:38 GMT] [info] [<0.1145.0>] 127.0.0.1 - - PUT /from/test/x937?rev=1-23a888c74ba58fe20dc0d424133750bb 201
[Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1147.0>] 'POST' /_replicate {1,1} from "127.0.0.1"
Headers: [{'Accept',"*/*"},
          {'Authorization',"Basic YWRtaW46YWRtaW4="},
          {'Content-Length',"31"},
          {'Content-Type',"application/json"},
          {'Host',"127.0.0.1:5984"},
          {'User-Agent',"curl/7.31.0"}]
[Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1147.0>] OAuth Params: []
[Fri, 24 Jan 2014 16:26:38 GMT] [info] [<0.1744.0>] Replication `"32b3b1ede908033172b54853f9031d30"` is using:
    4 worker processes
    a worker batch size of 500
    20 HTTP connections
    a connection timeout of 30000 milliseconds
    10 retries per request
    socket options are: [{keepalive,true},{nodelay,false}]
[Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1744.0>] Worker pids are: [<0.1750.0>,<0.1751.0>,<0.1752.0>,
                                       <0.1753.0>]
[Fri, 24 Jan 2014 16:26:38 GMT] [info] [<0.1147.0>] starting new replication `32b3b1ede908033172b54853f9031d30` at <0.1744.0> (`from` -> `to`)
[Fri, 24 Jan 2014 16:26:38 GMT] [debug] [<0.1750.0>] Worker flushing doc with attachments
[Fri, 24 Jan 2014 16:26:39 GMT] [debug] [<0.1750.0>] Worker reported completion of seq {1,2}
[Fri, 24 Jan 2014 16:26:39 GMT] [debug] [<0.1744.0>] Worker reported seq {1,2}, through seq was {0,0}, new through seq is {1,
                                                                                           2}, highest seq done was {0,
                                                                                                                     0}, new highest seq done is {1,
                                                                                                                                                  2}
Seqs in progress were: [{1,2}]
Seqs in progress are now: []
[Fri, 24 Jan 2014 16:26:39 GMT] [debug] [<0.93.0>] New task status for <0.1744.0>: [{checkpointed_source_seq,
                                                     0},
                                                    {continuous,false},
                                                    {doc_id,null},
                                                    {doc_write_failures,0},
                                                    {docs_read,1},
                                                    {docs_written,1},
                                                    {missing_revisions_found,
                                                     1},
                                                    {progress,100},
                                                    {replication_id,
                                                     <<"32b3b1ede908033172b54853f9031d30">>},
                                                    {revisions_checked,1},
                                                    {source,<<"from">>},
                                                    {source_seq,2},
                                                    {started_on,1390580798},
                                                    {target,<<"to">>},
                                                    {type,replication},
                                                    {updated_on,1390580799}]
[Fri, 24 Jan 2014 16:26:40 GMT] [info] [<0.1744.0>] recording a checkpoint for `from` -> `to` at source update_seq 2
[Fri, 24 Jan 2014 16:26:40 GMT] [debug] [<0.93.0>] New task status for <0.1744.0>: [{checkpointed_source_seq,
                                                     2},
                                                    {continuous,false},
                                                    {doc_id,null},
                                                    {doc_write_failures,0},
                                                    {docs_read,1},
                                                    {docs_written,1},
                                                    {missing_revisions_found,
                                                     1},
                                                    {progress,100},
                                                    {replication_id,
                                                     <<"32b3b1ede908033172b54853f9031d30">>},
                                                    {revisions_checked,1},
                                                    {source,<<"from">>},
                                                    {source_seq,2},
                                                    {started_on,1390580798},
                                                    {target,<<"to">>},
                                                    {type,replication},
                                                    {updated_on,1390580800}]
[Fri, 24 Jan 2014 16:26:40 GMT] [info] [<0.1147.0>] 127.0.0.1 - - POST /_replicate 200

Re: Replication of attachment is extremely slow.. LOGGED INFORMATION

Posted by Scott Weber <sc...@sbcglobal.net>.
We have a duplication of the problem from a cleaned installation.  And there are some interesting things in the log, but I don't know what they mean, since I am not familiar with the internals of CouchDB.

I have attached the couch log. I can send the actual file being replicated, but it is about 4Meg.  Too big to make a reasonable attachment.  And I don't think it will be of value to this issue.

As to the log, it is broken in three sections (tests), which I will outline:
In all cases, it first deletes all databases, then creates them, and adds a doc and attachment.
<1>
The first is where replication was requested via a script HTTP post.
The attachment is uploaded at line 36 - content length 4185522 bytes
The "_replicate" request is PUT at line 49.
Then a bunch of "Minor error in HTTP request" messages appear.  Not sure what that means.
Then starting at line 328 to 329, you can see 5 second gaps as it tries to "GET" from the "from" database
and a bunch of "New task status" messages are repeated (about 15 of them).
This repeats, showing 5 second pauses until line 740, where it says "POST /to/_ensure_full_commit 201"
TOTAL TIME:  16:03:03 to 16:04:16   One minute, thirteen seconds.

<2>
The next test was done using CURL, starting at line 770, it deletes the databases, and starts over.
At line 818, there is the PUT request to the _replicator db  (NOTE: This is "_replicator", not "_replicate", what is the difference?)
There are only 2 "new task status" messages, and the replication is done by at line 911
TOTAL TIME:  16:17:28 to 16:17:30   2 seconds.

<3>
The next test was done using curl as well. It is a repeat of the second test, except the replication request was PUT to "_replicate" rather than "_replicator", just like the first test.
It starts at line 912, and looks to be identical to everything in test 2.
It took two seconds, there were only 2 "New task status" messages again.

So, the only difference we see is the script used a header that has a different user-agent (and had a few other minor differences), and posts a replication request JSON which is this:
   {"_id" : "test", 
    "source" : "http://localhost:5984/from",
    "target" : "http://localhost:5984/to", 
    "create_target" : false, 
    "continuous" : false }

Which is slightly more comprehensive than the CURL JSON which is just this:
     {"source":"from","target":"to"}

But these differences should not cause the replication to be 30 times longer, should they?

Any other ideas why one form of replication takes so much longer?

-Scott




----- Original Message -----
From: Paul Davis <pa...@gmail.com>
To: "user@couchdb.apache.org" <us...@couchdb.apache.org>; Scott Weber <sc...@sbcglobal.net>
Cc: "replication@couchdb.apache.org" <re...@couchdb.apache.org>
Sent: Friday, January 24, 2014 12:18 PM
Subject: Re: Replication of attachment is extremely slow

If you can duplicate this the first thing I'd look at during a slow
replication is "sudo netstat -tanp tcp" to see if you're maybe bumping
up against open socket limits.

On Fri, Jan 24, 2014 at 7:40 AM, Scott Weber <sc...@sbcglobal.net> wrote:
> I appreciate the digging, but in the case of the test file we were using, it is some text that doesn't have dashes or newlines, mixed with image data which are big binary blobs.
>
> So strings that look like mime boundaries aren't likely to be present.
>
> -Scott
>
>
>
>

Re: Replication of attachment is extremely slow.. LOGGED INFORMATION

Posted by Scott Weber <sc...@sbcglobal.net>.
We have a duplication of the problem from a cleaned installation.  And there are some interesting things in the log, but I don't know what they mean, since I am not familiar with the internals of CouchDB.

I have attached the couch log. I can send the actual file being replicated, but it is about 4Meg.  Too big to make a reasonable attachment.  And I don't think it will be of value to this issue.

As to the log, it is broken in three sections (tests), which I will outline:
In all cases, it first deletes all databases, then creates them, and adds a doc and attachment.
<1>
The first is where replication was requested via a script HTTP post.
The attachment is uploaded at line 36 - content length 4185522 bytes
The "_replicate" request is PUT at line 49.
Then a bunch of "Minor error in HTTP request" messages appear.  Not sure what that means.
Then starting at line 328 to 329, you can see 5 second gaps as it tries to "GET" from the "from" database
and a bunch of "New task status" messages are repeated (about 15 of them).
This repeats, showing 5 second pauses until line 740, where it says "POST /to/_ensure_full_commit 201"
TOTAL TIME:  16:03:03 to 16:04:16   One minute, thirteen seconds.

<2>
The next test was done using CURL, starting at line 770, it deletes the databases, and starts over.
At line 818, there is the PUT request to the _replicator db  (NOTE: This is "_replicator", not "_replicate", what is the difference?)
There are only 2 "new task status" messages, and the replication is done by at line 911
TOTAL TIME:  16:17:28 to 16:17:30   2 seconds.

<3>
The next test was done using curl as well. It is a repeat of the second test, except the replication request was PUT to "_replicate" rather than "_replicator", just like the first test.
It starts at line 912, and looks to be identical to everything in test 2.
It took two seconds, there were only 2 "New task status" messages again.

So, the only difference we see is the script used a header that has a different user-agent (and had a few other minor differences), and posts a replication request JSON which is this:
   {"_id" : "test", 
    "source" : "http://localhost:5984/from",
    "target" : "http://localhost:5984/to", 
    "create_target" : false, 
    "continuous" : false }

Which is slightly more comprehensive than the CURL JSON which is just this:
     {"source":"from","target":"to"}

But these differences should not cause the replication to be 30 times longer, should they?

Any other ideas why one form of replication takes so much longer?

-Scott




----- Original Message -----
From: Paul Davis <pa...@gmail.com>
To: "user@couchdb.apache.org" <us...@couchdb.apache.org>; Scott Weber <sc...@sbcglobal.net>
Cc: "replication@couchdb.apache.org" <re...@couchdb.apache.org>
Sent: Friday, January 24, 2014 12:18 PM
Subject: Re: Replication of attachment is extremely slow

If you can duplicate this the first thing I'd look at during a slow
replication is "sudo netstat -tanp tcp" to see if you're maybe bumping
up against open socket limits.

On Fri, Jan 24, 2014 at 7:40 AM, Scott Weber <sc...@sbcglobal.net> wrote:
> I appreciate the digging, but in the case of the test file we were using, it is some text that doesn't have dashes or newlines, mixed with image data which are big binary blobs.
>
> So strings that look like mime boundaries aren't likely to be present.
>
> -Scott
>
>
>
>

Re: Replication of attachment is extremely slow

Posted by Paul Davis <pa...@gmail.com>.
If you can duplicate this the first thing I'd look at during a slow
replication is "sudo netstat -tanp tcp" to see if you're maybe bumping
up against open socket limits.

On Fri, Jan 24, 2014 at 7:40 AM, Scott Weber <sc...@sbcglobal.net> wrote:
> I appreciate the digging, but in the case of the test file we were using, it is some text that doesn't have dashes or newlines, mixed with image data which are big binary blobs.
>
> So strings that look like mime boundaries aren't likely to be present.
>
> -Scott
>
>
>
>
> ----- Original Message -----
> From: Nick North <no...@gmail.com>
> To: "user@couchdb.apache.org" <us...@couchdb.apache.org>; replication@couchdb.apache.org
> Cc:
> Sent: Friday, January 24, 2014 9:28 AM
> Subject: Re: Replication of attachment is extremely slow
>
> On 24 January 2014 15:01, Jens Alfke <je...@couchbase.com> wrote:
>
>>
>> On Jan 24, 2014, at 5:06 AM, Nick North <no...@gmail.com> wrote:
>>
>> > I'm not really expecting this problem to be the cause of the slowdown:
>> > the attachment needs to contain a lot of initial prefixes of the MIME
>> > boundary string for things to be really bad.
>>
>> This is on the reading side, where the MIME parser is looking for the
>> boundary string that signals the end of the attachment part?
>> But the boundary string has to appear after a CRLF, so the actual sequence
>> to search for starts with "\r\n--". I'd expect the slowdown to happen only
>> if the data contains a lot of those sequences, not just any old hyphens.
>>
>> (Also, that search is really slow enough to be noticeable?! Doesn't Erlang
>> have a native string-search primitive?)
>>
>> —Jens
>>
>> PS: Maybe we should move this thread to the new replication mailing list :)
>
>
> Copied to the replication list (though not with all the preceding posts
> including, with their top and bottom posting).
>
> I don't have the code in front of me, but what you say about the search
> string sounds right, so apologies for the error. However, that makes things
> worse: the current code searches each 4KB block of the attachment for any
> initial prefix of the boundary sequence. If it finds a prefix, but not the
> whole string, it passes the block up to that point through, and starts
> searching again from about the place where the prefix was found, on the
> remainder of the original block, plus the next 4KB appended to the end. So,
> if the boundary sequence begins with "\r", then every occurrence of "\r"
> will slow it down, by causing boundary sequence searching to start again
> from where it occurs, with a larger piece of attachment to search. "\r" is
> probably more common than "-", making the problem more likely to pop up.
>
> Nick
>

Re: Replication of attachment is extremely slow

Posted by Paul Davis <pa...@gmail.com>.
If you can duplicate this the first thing I'd look at during a slow
replication is "sudo netstat -tanp tcp" to see if you're maybe bumping
up against open socket limits.

On Fri, Jan 24, 2014 at 7:40 AM, Scott Weber <sc...@sbcglobal.net> wrote:
> I appreciate the digging, but in the case of the test file we were using, it is some text that doesn't have dashes or newlines, mixed with image data which are big binary blobs.
>
> So strings that look like mime boundaries aren't likely to be present.
>
> -Scott
>
>
>
>
> ----- Original Message -----
> From: Nick North <no...@gmail.com>
> To: "user@couchdb.apache.org" <us...@couchdb.apache.org>; replication@couchdb.apache.org
> Cc:
> Sent: Friday, January 24, 2014 9:28 AM
> Subject: Re: Replication of attachment is extremely slow
>
> On 24 January 2014 15:01, Jens Alfke <je...@couchbase.com> wrote:
>
>>
>> On Jan 24, 2014, at 5:06 AM, Nick North <no...@gmail.com> wrote:
>>
>> > I'm not really expecting this problem to be the cause of the slowdown:
>> > the attachment needs to contain a lot of initial prefixes of the MIME
>> > boundary string for things to be really bad.
>>
>> This is on the reading side, where the MIME parser is looking for the
>> boundary string that signals the end of the attachment part?
>> But the boundary string has to appear after a CRLF, so the actual sequence
>> to search for starts with "\r\n--". I'd expect the slowdown to happen only
>> if the data contains a lot of those sequences, not just any old hyphens.
>>
>> (Also, that search is really slow enough to be noticeable?! Doesn't Erlang
>> have a native string-search primitive?)
>>
>> —Jens
>>
>> PS: Maybe we should move this thread to the new replication mailing list :)
>
>
> Copied to the replication list (though not with all the preceding posts
> including, with their top and bottom posting).
>
> I don't have the code in front of me, but what you say about the search
> string sounds right, so apologies for the error. However, that makes things
> worse: the current code searches each 4KB block of the attachment for any
> initial prefix of the boundary sequence. If it finds a prefix, but not the
> whole string, it passes the block up to that point through, and starts
> searching again from about the place where the prefix was found, on the
> remainder of the original block, plus the next 4KB appended to the end. So,
> if the boundary sequence begins with "\r", then every occurrence of "\r"
> will slow it down, by causing boundary sequence searching to start again
> from where it occurs, with a larger piece of attachment to search. "\r" is
> probably more common than "-", making the problem more likely to pop up.
>
> Nick
>

Re: Replication of attachment is extremely slow

Posted by Scott Weber <sc...@sbcglobal.net>.
I appreciate the digging, but in the case of the test file we were using, it is some text that doesn't have dashes or newlines, mixed with image data which are big binary blobs.

So strings that look like mime boundaries aren't likely to be present.

-Scott




----- Original Message -----
From: Nick North <no...@gmail.com>
To: "user@couchdb.apache.org" <us...@couchdb.apache.org>; replication@couchdb.apache.org
Cc: 
Sent: Friday, January 24, 2014 9:28 AM
Subject: Re: Replication of attachment is extremely slow

On 24 January 2014 15:01, Jens Alfke <je...@couchbase.com> wrote:

>
> On Jan 24, 2014, at 5:06 AM, Nick North <no...@gmail.com> wrote:
>
> > I'm not really expecting this problem to be the cause of the slowdown:
> > the attachment needs to contain a lot of initial prefixes of the MIME
> > boundary string for things to be really bad.
>
> This is on the reading side, where the MIME parser is looking for the
> boundary string that signals the end of the attachment part?
> But the boundary string has to appear after a CRLF, so the actual sequence
> to search for starts with "\r\n--". I'd expect the slowdown to happen only
> if the data contains a lot of those sequences, not just any old hyphens.
>
> (Also, that search is really slow enough to be noticeable?! Doesn't Erlang
> have a native string-search primitive?)
>
> —Jens
>
> PS: Maybe we should move this thread to the new replication mailing list :)


Copied to the replication list (though not with all the preceding posts
including, with their top and bottom posting).

I don't have the code in front of me, but what you say about the search
string sounds right, so apologies for the error. However, that makes things
worse: the current code searches each 4KB block of the attachment for any
initial prefix of the boundary sequence. If it finds a prefix, but not the
whole string, it passes the block up to that point through, and starts
searching again from about the place where the prefix was found, on the
remainder of the original block, plus the next 4KB appended to the end. So,
if the boundary sequence begins with "\r", then every occurrence of "\r"
will slow it down, by causing boundary sequence searching to start again
from where it occurs, with a larger piece of attachment to search. "\r" is
probably more common than "-", making the problem more likely to pop up.

Nick


Re: Replication of attachment is extremely slow

Posted by Scott Weber <sc...@sbcglobal.net>.
I appreciate the digging, but in the case of the test file we were using, it is some text that doesn't have dashes or newlines, mixed with image data which are big binary blobs.

So strings that look like mime boundaries aren't likely to be present.

-Scott




----- Original Message -----
From: Nick North <no...@gmail.com>
To: "user@couchdb.apache.org" <us...@couchdb.apache.org>; replication@couchdb.apache.org
Cc: 
Sent: Friday, January 24, 2014 9:28 AM
Subject: Re: Replication of attachment is extremely slow

On 24 January 2014 15:01, Jens Alfke <je...@couchbase.com> wrote:

>
> On Jan 24, 2014, at 5:06 AM, Nick North <no...@gmail.com> wrote:
>
> > I'm not really expecting this problem to be the cause of the slowdown:
> > the attachment needs to contain a lot of initial prefixes of the MIME
> > boundary string for things to be really bad.
>
> This is on the reading side, where the MIME parser is looking for the
> boundary string that signals the end of the attachment part?
> But the boundary string has to appear after a CRLF, so the actual sequence
> to search for starts with "\r\n--". I'd expect the slowdown to happen only
> if the data contains a lot of those sequences, not just any old hyphens.
>
> (Also, that search is really slow enough to be noticeable?! Doesn't Erlang
> have a native string-search primitive?)
>
> —Jens
>
> PS: Maybe we should move this thread to the new replication mailing list :)


Copied to the replication list (though not with all the preceding posts
including, with their top and bottom posting).

I don't have the code in front of me, but what you say about the search
string sounds right, so apologies for the error. However, that makes things
worse: the current code searches each 4KB block of the attachment for any
initial prefix of the boundary sequence. If it finds a prefix, but not the
whole string, it passes the block up to that point through, and starts
searching again from about the place where the prefix was found, on the
remainder of the original block, plus the next 4KB appended to the end. So,
if the boundary sequence begins with "\r", then every occurrence of "\r"
will slow it down, by causing boundary sequence searching to start again
from where it occurs, with a larger piece of attachment to search. "\r" is
probably more common than "-", making the problem more likely to pop up.

Nick


Re: Replication of attachment is extremely slow

Posted by Nick North <no...@gmail.com>.
On 24 January 2014 15:01, Jens Alfke <je...@couchbase.com> wrote:

>
> On Jan 24, 2014, at 5:06 AM, Nick North <no...@gmail.com> wrote:
>
> > I'm not really expecting this problem to be the cause of the slowdown:
> > the attachment needs to contain a lot of initial prefixes of the MIME
> > boundary string for things to be really bad.
>
> This is on the reading side, where the MIME parser is looking for the
> boundary string that signals the end of the attachment part?
> But the boundary string has to appear after a CRLF, so the actual sequence
> to search for starts with "\r\n--". I'd expect the slowdown to happen only
> if the data contains a lot of those sequences, not just any old hyphens.
>
> (Also, that search is really slow enough to be noticeable?! Doesn't Erlang
> have a native string-search primitive?)
>
> —Jens
>
> PS: Maybe we should move this thread to the new replication mailing list :)


Copied to the replication list (though not with all the preceding posts
including, with their top and bottom posting).

I don't have the code in front of me, but what you say about the search
string sounds right, so apologies for the error. However, that makes things
worse: the current code searches each 4KB block of the attachment for any
initial prefix of the boundary sequence. If it finds a prefix, but not the
whole string, it passes the block up to that point through, and starts
searching again from about the place where the prefix was found, on the
remainder of the original block, plus the next 4KB appended to the end. So,
if the boundary sequence begins with "\r", then every occurrence of "\r"
will slow it down, by causing boundary sequence searching to start again
from where it occurs, with a larger piece of attachment to search. "\r" is
probably more common than "-", making the problem more likely to pop up.

Nick

Re: Replication of attachment is extremely slow

Posted by Nick North <no...@gmail.com>.
On 24 January 2014 15:01, Jens Alfke <je...@couchbase.com> wrote:

>
> On Jan 24, 2014, at 5:06 AM, Nick North <no...@gmail.com> wrote:
>
> > I'm not really expecting this problem to be the cause of the slowdown:
> > the attachment needs to contain a lot of initial prefixes of the MIME
> > boundary string for things to be really bad.
>
> This is on the reading side, where the MIME parser is looking for the
> boundary string that signals the end of the attachment part?
> But the boundary string has to appear after a CRLF, so the actual sequence
> to search for starts with "\r\n--". I'd expect the slowdown to happen only
> if the data contains a lot of those sequences, not just any old hyphens.
>
> (Also, that search is really slow enough to be noticeable?! Doesn't Erlang
> have a native string-search primitive?)
>
> —Jens
>
> PS: Maybe we should move this thread to the new replication mailing list :)


Copied to the replication list (though not with all the preceding posts
including, with their top and bottom posting).

I don't have the code in front of me, but what you say about the search
string sounds right, so apologies for the error. However, that makes things
worse: the current code searches each 4KB block of the attachment for any
initial prefix of the boundary sequence. If it finds a prefix, but not the
whole string, it passes the block up to that point through, and starts
searching again from about the place where the prefix was found, on the
remainder of the original block, plus the next 4KB appended to the end. So,
if the boundary sequence begins with "\r", then every occurrence of "\r"
will slow it down, by causing boundary sequence searching to start again
from where it occurs, with a larger piece of attachment to search. "\r" is
probably more common than "-", making the problem more likely to pop up.

Nick

Re: Replication of attachment is extremely slow

Posted by Jens Alfke <je...@couchbase.com>.
On Jan 24, 2014, at 5:06 AM, Nick North <no...@gmail.com> wrote:

> I'm not really expecting this problem to be the cause of the slowdown:
> the attachment needs to contain a lot of initial prefixes of the MIME
> boundary string for things to be really bad. 

This is on the reading side, where the MIME parser is looking for the boundary string that signals the end of the attachment part?
But the boundary string has to appear after a CRLF, so the actual sequence to search for starts with "\r\n--". I'd expect the slowdown to happen only if the data contains a lot of those sequences, not just any old hyphens.

(Also, that search is really slow enough to be noticeable?! Doesn't Erlang have a native string-search primitive?)

—Jens

PS: Maybe we should move this thread to the new replication mailing list :)

Re: Replication of attachment is extremely slow

Posted by Nick North <no...@gmail.com>.
On 24 January 2014 12:44, Dave Cottlehuber <dc...@jsonified.com> wrote:

> On 24. Jänner 2014 at 08:23:16, Nick North (north.n@gmail.com) wrote:
> > From: Nick North <no...@gmail.com>
>
> > There is a known inefficiency
> > in parsing of attachments containing certain character strings.
> > This doesn't obviously sound like an instance of it, but you can
> > eliminate the possibility very quickly if you replace all hyphens
> > (i.e. the character "-") in your mixed content file by some other
> > character, like "X". If replication of the modified file runs
> > quickly, you've hit this particular problem.
> > Nick
>
> Hey Nick, https://issues.apache.org/jira/browse/COUCHDB-1953 thanks
> for bringing that up. I’ve quickly re-done my timing checks with that
> and see no major difference, do you want to compare a few with some
> other modified test docs and see how that looks?
>
> A+
> Dave
>
>
I'm not really expecting this problem to be the cause of the slowdown:
the attachment needs to contain a lot of initial prefixes of the MIME
boundary string for things to be really bad. While the patch speeds up
parsing in all cases, I suspect the processing time is usually dominated by
other parts of the process. I just mentioned it as it's the only bit of
code I know whose performance varies with attachment content, so it's worth
a try. It would be great if Scott is able to put his offending file up
somewhere for us to try out.

Nick

Re: Replication of attachment is extremely slow

Posted by Dave Cottlehuber <dc...@jsonified.com>.
On 24. Jänner 2014 at 08:23:16, Nick North (north.n@gmail.com) wrote:
> From: Nick North <no...@gmail.com>

> There is a known inefficiency 
> in parsing of attachments containing certain character strings. 
> This doesn't obviously sound like an instance of it, but you can 
> eliminate the possibility very quickly if you replace all hyphens 
> (i.e. the character "-") in your mixed content file by some other 
> character, like "X". If replication of the modified file runs 
> quickly, you've hit this particular problem. 
> Nick 

Hey Nick, https://issues.apache.org/jira/browse/COUCHDB-1953 thanks
for bringing that up. I’ve quickly re-done my timing checks with that
and see no major difference, do you want to compare a few with some
other modified test docs and see how that looks?

A+
Dave



Re: Replication of attachment is extremely slow

Posted by Nick North <no...@gmail.com>.
There is a known inefficiency in parsing of attachments containing certain character strings. This doesn't obviously sound like an instance of it, but you can eliminate the possibility very quickly if you replace all hyphens (i.e. the character "-") in your mixed content file by some other character, like "X". If replication of the modified file runs quickly, you've hit this particular problem.

Nick

> On 23 Jan 2014, at 22:27, Scott Weber <sc...@sbcglobal.net> wrote:
> 
> I have seen the same thing as the poster below.  Does anyone have a fix? Work around?
> 
> It would seem that the database server is doing some kind of inspection of the 
> 
> attachments and deciding how to move them around (Based 64, UTF16, etc...).  
> 
> Is this the case?
> 
> Here is what I tried:
> I attached a mixed content file to a document (text+binary, kind of like a PDF).  This was about 3 meg or so. Then I triggered a replication to another database.  It took 30 seconds to replicate it *on the same box*.
> 
> I deleted everything, and made several repeats of the this test.
> 
> I renamed the file to *.BIN, then uploaded it.  Still took too long to replicate.
> 
> I renamed the file to *.TXT, then uploaded it.  Still took too long to replicate.
> 
> I renamed the file to *.EXE, then uploaded it.  Still took too long to replicate.
> 
> However, when I upload an *actual* executable file of about the same size, it replicates it in about 1 second.
> 
> In all cases, the "content_type" of the attachment was correct to the file type.
> 
> So clearly, something internal is ignoring the "content_type", and examining the file contents. Then deciding what to do about it.
> 
> Is this expected behavior?  How can I get the system to simply pass attachments as binary without do whatever it is doing.
> 
> Thanks for any advice.
> 
> -Scott
> 
> 
>> From "Rian R. Maloney" <ri...@yahoo.com> 
>> Subject Replication of specific binary attachment is extremely slow 
>> Date Tue, 21 Jan 2014 04:26:53 GMT 
>> Hello Couch Community - I have an odd problem that I could use some help with. I am using
> 
>> couch replication for attachments that are essentially a bunch of concatenated
>> TIFF images with some text in between each image. When I replicate a database with a single
>> document that has a single binary attachment that is only 4.5mb it takes 30+ seconds to
> 
>> complete.
> 
>> 
>> If I zip the file it is sub second to completion
> 
>> 
>> My test cases have been on Windows 7 and Mac OS x10.7.5 running either
> 
>> CouchDB 1.3, 1.4 or 1.5
> 
>> 
>> I am doing local replication  The CPU spikes for the entire duration
> 
>> When I use Futon to kick off the replication, it is sub second to completion
> 
>> but when I POST to replicate, it takes 30+ seconds ...
>