couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bob Dionne (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (COUCHDB-911) Repeating a doc._id in a _bulk_docs request results in erroneous "Document conflict" error
Date Sat, 20 Aug 2011 11:16:27 GMT

    [ 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

        

Mime
View raw message