Phil May created COUCHDB-3373:
---------------------------------

             Summary: POST to _changes times out if a POST body is present and 
the "filter" query parameter is set to something other than _doc_ids
                 Key: COUCHDB-3373
                 URL: https://issues.apache.org/jira/browse/COUCHDB-3373
             Project: CouchDB
          Issue Type: Bug
          Components: HTTP Interface
            Reporter: Phil May


CouchDB version – 2.0.0
Platform – Mac
Client – CURL

In CouchDB 2.0.0, if I do a POST to _changes, and I have the filter query 
parameter set to point to my design document, and I also have a superfluous 
JSON message body in the POST request, the request times out. If, however, 
there is no JSON body in the POST request, I get the expected behavior (correct 
filtered _changes response). I would expect the superfluous JSON body to be 
ignored if present, and for both to work the same (see examples below).

Unfiltered POSTs to _changes (no "filter" query param) work with or without a 
POST request body. POSTs to _changes with the query parameter set to 
"filter=_doc_ids", but with an unexpected JSON body, return a reasonable error 
– {"error":"bad_request","reason":"`doc_ids` filter parameter is not a list of 
doc ids."}

As an aside – in CouchDB 1.6, filtered POSTs to _changes work with or without a 
superfluous message body in the POST request (the request body is ignored).

It would be nice if CouchDB 2.0 behaved like 1.6, where the superfluous request 
body is simply ignored since it's not relevant to the request (i.e., the 
"filter" parameter is set, but not set to "_doc_ids").

Examples (I would expect these to behave identically):
=========================================
Superfluous Request Body:
> curl -v -X POST -H 'Content-Type: application/json' 
> 'http://localhost:5984/couchbase-test-notes/_changes?feed=normal&style=all_docs&filter=filterFuncs/ownerFilter&owner=Gunderson'
>  -d '{}'
...
< HTTP/1.1 500 Internal Server Error
< Cache-Control: must-revalidate
< Connection: close
< Content-Length: 37
< Content-Type: application/json
< Date: Wed, 12 Apr 2017 19:35:09 GMT
< Server: CouchDB/2.0.0 (Erlang OTP/19)
< X-Couch-Request-ID: 5a58b4cfba
< X-CouchDB-Body-Time: 0
< 
{"error":"error","reason":"timeout"}

No Request Body:
> curl -X POST -H 'Content-Type: application/json' 
> 'http://localhost:5984/couchbase-test-notes/_changes?feed=normal&style=all_docs&filter=filterFuncs/ownerFilter&owner=Gunderson'
{"results":[
{"seq":"7-g1AAAAB5eJzLYWBgYMpgTmEQTM4vTc5ISXLIyU9OzMnILy7JAUklMiTV____PyuRAY-iPBYgydAApP6D1GYwJ7LnAgXYk1LMUg2S0rDpywIA-MYnAQ","id":"Gunderson-ThrowAway-faafcfac-4942-4c72-a6c3-27a0c3f68183","changes":[{"rev":"3-bf8d32e5dbc3417d737e6d1146da1879"}],"deleted":true},
.
.
.
],
"last_seq":"81-g1AAAACbeJzLYWBgYMpgTmEQTM4vTc5ISXLIyU9OzMnILy7JAUklMiTV____PyuDOVEmFyjAnmiZlmqalIZNAx5j8liAJEMDkPoPNc0UbFpSilmqAXbTsgC8KjHi","pending":0}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to