Details
-
Bug
-
Status: Resolved
-
Minor
-
Resolution: Fixed
-
0.11
-
None
-
CouchDB 0.11 on Ubuntu 10.04,
-
Regular Contributors Level (Easy to Medium)
Description
I have a photo which is around 3 MB that I'm trying to PUT to an external process on the CouchDB database. The external process is called "_upload".
I get an uncaught error "{exit,{body_too_large,content_length}}" in the logs when trying this. Smaller photos (around 60 kB) seem to work just fine.
This just happens with external processes. I can upload the photo as an attachment directly to a document, with no problems.
The error is similar to an earlier bug in the mochiweb library that was fixed around Feb 2009, where mochiweb never used the "max_document_size" setting that was provided when calling mochiweb_request:recv_body.
I believe, supported by the stack trace below, that the cause for this bug is that in couch_httpd_external:json_req_obj the function mochiweb_request:recv_body/0 is called, which uses the mochiweb default value on MaxBody, which is 1 MB.
I think that couch_httpd_external:json_req_obj should call mochiweb_request:recv_body/1 instead, with the "max_document_size" setting as the argument.
Here are the error logs from one of my attempts:
[Thu, 08 Jul 2010 18:49:53 GMT] [debug] [<0.3738.0>] 'PUT' /pillowfight/_upload/6b1908c352129ddda396fa69ac003d11
{1,1}Headers: [
{'Accept',"*/*"},
,
,
,
,
]
[Thu, 08 Jul 2010 18:49:53 GMT] [debug] [<0.3738.0>] OAuth Params: []
[Thu, 08 Jul 2010 18:49:53 GMT] [error] [<0.3738.0>] Uncaught error in HTTP request: {exit,{body_too_large,content_length}}
[Thu, 08 Jul 2010 18:49:53 GMT] [info] [<0.3738.0>] Stacktrace: [
{mochiweb_request,stream_body,5},
,
,
,
,
,
,
]