[ 
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

        

Reply via email to