nicolas-albert opened a new issue #3328:
URL: https://github.com/apache/couchdb/issues/3328


   ## Description
   
   The _bulk_get service allows to retrieve multiple documents with their 
attachments. If the client already have a revision of a document, the 
atts_since option allows to not reply an unmodified attachment again.
   
   In this case, the part is incorrect:
   ```
   ----68dd74e8c5bb2822e23a8ada6eeb2619
   X-Doc-Id: att_10
   X-Rev-Id: 3-a50b011b678507001e15d904295bccf1
   Content-Type: multipart/related; boundary=--c994d3e17aee82de2d947e57171e97ad
   
   
{"_id":"att_10","_rev":"3-a50b011b678507001e15d904295bccf1","data":"data_10","_revisions":{"start":3,"ids":["a50b011b678507001e15d904295bccf1","3d2ba9b990fa62a3aeabc75f86aaace8","167072636fface8c96ec4eb1cb915814"]},"_attachments":{"text.txt":{"content_type":"text/plain","revpos":2,"digest":"md5-VviK0JqDf+w9vDhCLZSI5Q==","length":11,"stub":true,"encoding":"gzip","encoded_length":31}}}
   ----68dd74e8c5bb2822e23a8ada6eeb2619
   ```
   The part declares a sub multipart/related with a boundary never used and the 
application/json Content-Type isn't set.
   The couchbaselite-java (1.4.x) library break the replication because of this 
nonsense.
   
   ## Steps to Reproduce
   
   Take a document with an attachment, note its revision and make a new 
revision:
   `curl -H "Accept: multipart/related" -H "Content-Type: application/json" -d 
'{"docs":[{"atts_since":["x-oldrev"],"rev":"y-newrev","id":"mydoc"}]}' 
"http://localhost:5984/mydb/_bulk_get?revs=true&attachments=true"`
   
   Should also works with multiple docs for the same query.
   
   ## Expected Behaviour
   
   Instead, we should have something like this:
   ```
   ----68dd74e8c5bb2822e23a8ada6eeb2619
   X-Doc-Id: att_10
   X-Rev-Id: 3-a50b011b678507001e15d904295bccf1
   Content-Type: multipart/related; boundary=--c994d3e17aee82de2d947e57171e97ad
   
   ----c994d3e17aee82de2d947e57171e97ad
   Content-Type: application/json
   
   
{"_id":"att_10","_rev":"3-a50b011b678507001e15d904295bccf1","data":"data_10","_revisions":{"start":3,"ids":["a50b011b678507001e15d904295bccf1","3d2ba9b990fa62a3aeabc75f86aaace8","167072636fface8c96ec4eb1cb915814"]},"_attachments":{"text.txt":{"content_type":"text/plain","revpos":2,"digest":"md5-VviK0JqDf+w9vDhCLZSI5Q==","length":11,"stub":true,"encoding":"gzip","encoded_length":31}}}
   ----c994d3e17aee82de2d947e57171e97ad--
   ----68dd74e8c5bb2822e23a8ada6eeb2619
   ```
   
   ## Your Environment
   
   * CouchDB version used: tested with CouchDB 2.3.1 and 3.1.1
   * Operating system and version: docker versions
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to