couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Robert Newson (JIRA)" <j...@apache.org>
Subject [jira] [Resolved] (COUCHDB-1177) function_clause error in write_streamed_attachment
Date Fri, 27 May 2011 08:01:48 GMT

     [ https://issues.apache.org/jira/browse/COUCHDB-1177?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Robert Newson resolved COUCHDB-1177.
------------------------------------

    Resolution: Fixed

The code that reads attachments passed 0 for the length, which returns all data on the socket,
even if that runs into the next request. The fix is to keep track of the expected remaining
size and ask for no more than that each time.

> function_clause error in write_streamed_attachment
> --------------------------------------------------
>
>                 Key: COUCHDB-1177
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-1177
>             Project: CouchDB
>          Issue Type: Bug
>    Affects Versions: 1.0.1, 1.0.2
>            Reporter: Robert Newson
>            Assignee: Robert Newson
>            Priority: Blocker
>             Fix For: 1.0.3, 1.1, 1.2
>
>
> LenLeft can still go negative. While the guard clause prevents an earlier bug, replication
fails when it hits this issue.
> In the following case, LenLeft is -673327 which matches no clauses (we expect either
0 or > 0). Somehow we are starting with a LenLeft value lower than the number of bytes
we subsequently receive.
> {function_clause,
>                                [{couch_db,write_streamed_attachment,
>                                     [<0.13520.3>,
>                                      #Fun<couch_rep_att.0.90652905>,-673327]},
>                                 {couch_db,with_stream,3},
>                                 {couch_db,'-doc_flush_atts/2-lc$^0/1-0-',2},
>                                 {couch_db,doc_flush_atts,2},
>                                 {couch_db,'-update_docs/4-lc$^3/1-3-',2},
>                                 {couch_db,'-update_docs/4-lc$^2/1-2-',2},
>                                 {couch_db,'-update_docs/4-lc$^2/1-2-',2},
>                                 {couch_db,update_docs,4}]}}

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message