Details
-
Bug
-
Status: Resolved
-
Blocker
-
Resolution: Invalid
-
1.2
-
None
-
Mac OS 10.6.8
Description
GETing a document after a multipart PUT which uploaded an attachment generates a 500 error. To reproduce:
Following document is in a DB (called semo_test here).
{ "_id": "doc0", "_rev": "1-7e97409c987eac3a99385a17ad4cbabe", "value": 0 }Update the document and add an attachment using a multipart/related request:
PUT /semo_test/doc0 HTTP/1.1
Accept: application/json, /
content-type:
multipart/related;boundary=multipart_related_boundary~~~~~~~~~~~~~~~~~~~~
Host: localhost:5984
Content-Length: 435
Connection: keep-alive
--multipart_related_boundary~~~~~~~~~~~~~~~~~~~~
Content-Type: application/json
{"value":0,"_id":"doc0","_rev":"1-7e97409c987eac3a99385a17ad4cbabe","_attachments":{"plus
1":{"stub":false,"follows":true,"content_type":"application/json","length":14}},".cache":{"plus
1":
}}
--multipart_related_boundary~~~~~~~~~~~~~~~~~~~~
-multipart_related_boundary~~~~~~~~~~~~~~~~~~~~-
HTTP/1.1 201 Created
Server: CouchDB/1.2.0 (Erlang OTP/R15B)
Location: http://127.0.0.1:2222/semo_test/doc0
ETag: "2-37f62cdf8cb68339a30b7b20d7eb0d1d"
Date: Mon, 13 Aug 2012 14:00:49 GMT
Content-Type: application/json
Content-Length: 67
Cache-Control: must-revalidate
Request the updated document:
GET /semo_test/doc0 HTTP/1.1
Accept: application/json, /
Host: localhost:5984
HTTP/1.1 500 Internal Server Error
Server: CouchDB/1.2.0 (Erlang OTP/R15B)
Date: Mon, 13 Aug 2012 14:10:02 GMT
Content-Type: application/json
Content-Length: 43
Cache-Control: must-revalidate
Following stacktrace is generated when handling the GET:
[Mon, 13 Aug 2012 14:10:02 GMT] [error] [<0.6811.10>] Uncaught error
in HTTP request:
[Mon, 13 Aug 2012 14:10:02 GMT] [info] [<0.6811.10>] Stacktrace:
[
,
{couch_doc,'to_json_attachments/4-fun-0',
4,
[
{lists,map,2,
[{file,"lists.erl"},{line,1173}]},
{couch_doc,to_json_attachments,4,
[{file,"couch_doc.erl"}
,
{line,101}]},
{couch_doc,doc_to_json_obj,2,
[
,
{line,153}]},
{couch_httpd_db,send_doc_efficiently,4,
[
{line,836}]},
{couch_httpd_db,do_db_req,2,
[{file,"couch_httpd_db.erl"}
,
]},
{couch_httpd,handle_request_int,5,
[
,
{line,317}]}]
[Mon, 13 Aug 2012 14:10:02 GMT] [error] [<0.6811.10>] Uncaught
server error: undef
[Mon, 13 Aug 2012 14:10:02 GMT] [info] [<0.6811.10>] 127.0.0.1 - -
GET /test/doc0 500
(This problem was originally reported on user@couchdb and Robert Newson requested that I raise it here. Note that these steps generate the error as described when I test on one couchdb installation, but when I try the same steps on a separate installation - also Mac OS 10 - the 500 error doesn't occur, so possibly the error is somehow related to db state).