Pretty obvious bug, yes. We're attempting to evaluate whether the atom 'chunked' is greater than zero.
>receive_request_data(Req) -> > receive_request_data(Req, couch_httpd:body_length(Req)). > >receive_request_data(Req, LenLeft) when LenLeft > 0 -> On 6 February 2012 13:21, Jens Alfke <[email protected]> wrote: > tl;dr: CouchDB* doesn’t seem to correctly parse MIME multipart uploads when > the HTTP transfer is chunked. It generates an Erlang exception. > > I spent the weekend trying to implement multipart document+attachment uploads > in my client code. In doing so I ran into what I think is a bug in CouchDB — > after I’d gotten the client side working, every upload produced an Erlang > exception on the server. I tried changing around the client-side code so it > precomputed the body length instead of sending the body in ‘chunked’ > encoding, and that made CouchDB happier. > > The exception looks like: > > [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-'... > > Is this a known bug, or should I file something? > > —Jens > > * Well, Couchbase Single Server 2.0.0dev4, which I think is basically CouchDB > 1.1.1. >
