Antony, there is a good chance this is related to COUCHDB-366 which I just submitted a fix for. Updated to the latest trunk and see if it fixes it.

-Damien


On May 28, 2009, at 11:08 PM, Antony Blakey wrote:

Further to this issue, using trunk my repeatable error hangs replication. I get a result like this:

------------------------------------------------------------------------------------------
[debug] [<0.125.0>] Attachment URL 
http://localhost:5985/acumen-curricula/3861b6572b83310c8d1bd4af19c24960/generated_learning_guide.pdf?rev=12-3009421878
[debug] [<0.125.0>] streaming attachment Status "200" Headers [{"Transfer-Encoding","chunked"},
                                          {"Server",
"CouchDB/0.10.0a (Erlang OTP/R13B)"}, {"ETag","\"12-3009421878\""},
                                          {"Date",
"Fri, 29 May 2009 02:29:05 GMT"}, {"Content- Type","application/pdf"},
                                          {"Cache-Control",
                                           "must-revalidate"}]
[debug] [<0.125.0>] REPLICATOR: about to update_docs
[debug] [<0.125.0>] REPLICATOR: in update_docs
[debug] [<0.125.0>] REPLICATOR: about to write_and_commit
[debug] [<0.125.0>] REPLICATOR: about to doc_flush_binaries
[debug] [<0.125.0>] REPLICATOR: about to flush_binary for Learning Guide.odt [debug] [<0.125.0>] REPLICATOR: about to flush_binary for Pre- Service Lesson Planning Guide.doc [debug] [<0.125.0>] REPLICATOR: about to flush_binary for Trainers Guide.odt [debug] [<0.125.0>] REPLICATOR: about to flush_binary for New Mindmap.png [debug] [<0.125.0>] REPLICATOR: about to flush_binary for Presentation Guide.odp
[debug] [<0.125.0>] REPLICATOR: about to flush_binary for mpabroa.mm
[debug] [<0.125.0>] REPLICATOR: about to flush_binary for New Mindmap.mm [debug] [<0.125.0>] REPLICATOR: about to flush_binary for generated_learning_guide.pdf [debug] [<0.125.0>] write_streamed_attachment has written too much expected: 81912 got: 81913 tail: <<"\r">>
------------------------------------------------------------------------------------------

And it's all over for that couchdb. Restart is required to continue.

I've set the ibrowse # of sessions and pipeline to 1 to try and remove the pipelining and concurrent connections from the mix, but still it happens - then again it seems I'm not being entirely successful in that regard because ...

When I turn ibrowse tracing on (in make_attachment_receiver) like this:

   ...
   {ok, Conn} = ibrowse:spawn_link_worker_process(Host, Port),
   Conn ! {trace, true},
   ...

then I see this result:

------------------------------------------------------------------------------------------
2009-5-28_23:18:25:922 -- (localhost:5985) - Recvd more data: size: 69. NeedBytes: 62
2009-5-28_23:18:25:922 -- (localhost:5985) - Recvd another chunk...
2009-5-28_23:18:25:922 -- (localhost:5985) - RemData -> "\r\n0\r\n\r \n" 2009-5-28_23:18:25:925 -- (localhost:5985) - Determined chunk size: 0. Already recvd: 2 2009-5-28_23:18:25:925 -- (localhost:5985) - Detected end of chunked transfer... [debug] [<0.120.0>] REPLICATOR: about to flush_binary for Presentation Guide.odp [debug] [<0.120.0>] REPLICATOR: about to flush_binary for New Mindmap.mm [debug] [<0.120.0>] REPLICATOR: about to flush_binary for Mathematics 2 Application of Subtraction.odt [debug] [<0.120.0>] REPLICATOR: about to flush_binary for generated_learning_guide.pdf [debug] [<0.120.0>] REPLICATOR: about to flush_binary for Learning Guide.odt [debug] [<0.120.0>] REPLICATOR: about to flush_binary for Pre- Service Lesson Planning Guide.doc [debug] [<0.120.0>] REPLICATOR: about to flush_binary for Trainers Guide.odt [debug] [<0.120.0>] REPLICATOR: about to flush_binary for Presentation Guide.odp [debug] [<0.120.0>] REPLICATOR: about to flush_binary for New Mindmap.mm [debug] [<0.120.0>] REPLICATOR: about to flush_binary for generated_learning_guide.pdf [debug] [<0.120.0>] REPLICATOR: about to flush_binary for Learning Guide.odt [debug] [<0.120.0>] REPLICATOR: about to flush_binary for Trainers Guide.odt [debug] [<0.120.0>] REPLICATOR: about to flush_binary for Pre- Service Lesson Planning Guide.doc
[debug] [<0.120.0>] REPLICATOR: about to flush_binary for Gases.png
[debug] [<0.120.0>] REPLICATOR: about to flush_binary for Behaviour of Gases1.odt [debug] [<0.120.0>] REPLICATOR: about to flush_binary for Science 9 - Behaviour of Gases.pdf [debug] [<0.120.0>] write_streamed_attachment has written too much expected: 383360 got: 383361 tail: <<"\r">> 2009-5-28_23:18:51:418 -- (localhost:5985) - TCP connection closed by peer! 2009-5-28_23:18:51:637 -- (localhost:5985) - TCP connection closed by peer! 2009-5-28_23:18:51:678 -- (localhost:5985) - TCP connection closed by peer! 2009-5-28_23:18:51:932 -- (localhost:5985) - TCP connection closed by peer! 2009-5-28_23:18:52:75 -- (localhost:5985) - TCP connection closed by peer!
------------------------------------------------------------------------------------------

And once again, all over. I initially suspected that the ibrowse error was terminating the stream readers without sending the failure response, but I'm not really sure.

I suspect from the ibrowse tracing showing interleaved data response (and those 5 connection close messages) that I haven't succeeded in make ibrowse linear-one-request, which I need to do to find this problem in ibrowse.

Any hints on how to truly make ibrowse single-connection without pipelining?

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

Some defeats are instalments to victory.
 -- Jacob Riis



Reply via email to