Author: fdmanana Date: Fri Jul 16 22:56:55 2010 New Revision: 964971 URL: http://svn.apache.org/viewvc?rev=964971&view=rev Log: Revert revision 964957 (COUCHDB-827) - solution had secondary effects.
Modified: couchdb/branches/1.0.x/src/couchdb/couch_db.erl couchdb/branches/1.0.x/src/couchdb/couch_rep_att.erl Modified: couchdb/branches/1.0.x/src/couchdb/couch_db.erl URL: http://svn.apache.org/viewvc/couchdb/branches/1.0.x/src/couchdb/couch_db.erl?rev=964971&r1=964970&r2=964971&view=diff ============================================================================== --- couchdb/branches/1.0.x/src/couchdb/couch_db.erl (original) +++ couchdb/branches/1.0.x/src/couchdb/couch_db.erl Fri Jul 16 22:56:55 2010 @@ -901,20 +901,10 @@ with_stream(Fd, #att{md5=InMd5,type=Type write_streamed_attachment(_Stream, _F, 0) -> ok; -% LenLeft might be different from the total size of what function F returns. -% This happens when doing a pull replication of compressed attachments from a -% 0.11.0 server, where LenLeft will match the uncompressed size but we end up -% receiving the attachment compressed (therefore a size different from LenLeft). -% This is because 0.11.0 doesn't understand the query parameter -% "?att_encoding_info=true" when we do a doc request (GET /somedb/somedoc). write_streamed_attachment(Stream, F, LenLeft) -> - case F() of - Bin when is_binary(Bin) -> - ok = couch_stream:write(Stream, Bin), - write_streamed_attachment(Stream, F, LenLeft - size(Bin)); - eof -> - ok - end. + Bin = F(), + ok = couch_stream:write(Stream, Bin), + write_streamed_attachment(Stream, F, LenLeft - size(Bin)). enum_docs_since_reduce_to_count(Reds) -> couch_btree:final_reduce( Modified: couchdb/branches/1.0.x/src/couchdb/couch_rep_att.erl URL: http://svn.apache.org/viewvc/couchdb/branches/1.0.x/src/couchdb/couch_rep_att.erl?rev=964971&r1=964970&r2=964971&view=diff ============================================================================== --- couchdb/branches/1.0.x/src/couchdb/couch_rep_att.erl (original) +++ couchdb/branches/1.0.x/src/couchdb/couch_rep_att.erl Fri Jul 16 22:56:55 2010 @@ -81,12 +81,8 @@ receive_data(Ref, ReqId, ContentEncoding % ?LOG_DEBUG("got ~p bytes for ~p", [size(Data), ReqId]), Data; {ibrowse_async_response_end, ReqId} -> - % This means ibrowse received all the data it was supposed to. - % In case of not receiving the whole data, due to a network link - % failure for example, we would have received an error message. - % In other words, this message doesn't represent an error - look into - % ibrowse_http_client.erl. - eof + ?LOG_ERROR("streaming att. ended but more data requested ~p", [ReqId]), + throw({attachment_request_failed, premature_end}) after 31000 -> throw({attachment_request_failed, timeout}) end.