[ https://issues.apache.org/jira/browse/COUCHDB-911?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13088183#comment-13088183 ]
Bob Dionne commented on COUCHDB-911: ------------------------------------ I think that's true, you might have a dup in the bulk docs request and both are rejected because a third with the same id was sent from another client. All this patch does is match the docs that are sent to couch_db_updater with any conflict messages that are returned. If you send docs A,B,C,D, and E they will be processed in this order. I think this is true, even though other clients might send updates for B and C and they will be grouped in. But the client that sent A,B,C,D, and E will see any conflicts returned in that order. Two docs with the same id might have different bodies, .ie. aren't really dups. It's important to indicate which is rejected and which committed. Currently for both this case and the case of dups we save the second (because we reverse the order) and report both rejected, which leaves the database in an inconsistent state. > Repeating a doc._id in a _bulk_docs request results in erroneous "Document > conflict" error > ------------------------------------------------------------------------------------------ > > Key: COUCHDB-911 > URL: https://issues.apache.org/jira/browse/COUCHDB-911 > Project: CouchDB > Issue Type: Bug > Components: HTTP Interface > Affects Versions: 1.0 > Environment: Cloudant BigCouch EC2 node > Reporter: Jay Nelson > Priority: Minor > Original Estimate: 48h > Remaining Estimate: 48h > > Repeating an "_id" in a _bulk_docs post data file results in both entries > being reported as document conflict errors. The first occurrence actual > inserts into the database, and only the second occurrence should report a > conflict. > curl -d '{ "docs": [ {"_id":"foo"}, {"_id","foo"} ] }' -H > 'Content-Type:application/json' -X POST > http://appadvice.cloudant.com/foo/_bulk_docs > [{"id":"foo","error":"conflict","reason":"Document update > conflict."},{"id":"foo","error":"conflict","reason":"Document update > conflict."}] > But the database shows that one new document was actually inserted. > Only the second occurrence should report conflict. The first occurrence > should report the "_rev" property of the newly inserted doc. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira