Multipart upload fails with exception if request body is chunked
----------------------------------------------------------------
Key: COUCHDB-1403
URL: https://issues.apache.org/jira/browse/COUCHDB-1403
Project: CouchDB
Issue Type: Bug
Components: HTTP Interface
Affects Versions: 1.1.1
Environment: Mac OS X 10.7.3, Couchbase Single Server 2.0.0dev4 (based
on CouchDB 1.1.1)
Reporter: Jens Alfke
Priority: Minor
CouchDB doesn't correctly parse MIME multipart PUT/POST requests when the HTTP
transfer is chunked. It generates an Erlang exception, and the client sees that
the socket was closed unexpectedly.
[error] [emulator] Error in process <0.15079.3> with exit value:
{badarith,[{couch_httpd_db,'-receive_request_data/2-fun-0-',3},{couch_httpd,read_until,3},{couch_httpd,parse_part_body,1},{couch_httpd,parse_multipart_request,3},{couch_doc,'-doc_from_multi_part_stream/2-fun-1-'...
The source looks like:
receive_request_data(Req) ->
receive_request_data(Req, couch_httpd:body_length(Req)).
receive_request_data(Req, LenLeft) when LenLeft > 0 ->
Robert Newson commented on the user@ list: "Pretty obvious bug, yes. We're
attempting to evaluate whether the atom 'chunked' is greater than zero."
The obvious workaround -- don't use chunked -- may not be available to clients.
This level of encoding is generally performed by the browser or client HTTP
library, and the app level code may not have control over whether it's
performed.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira