couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Matt Goodall (JIRA)" <j...@apache.org>
Subject [jira] Commented: (COUCHDB-188) _bulk_docs fails when deleting and adding a doc with the same id
Date Thu, 26 Mar 2009 23:46:50 GMT

    [ https://issues.apache.org/jira/browse/COUCHDB-188?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12689742#action_12689742
] 

Matt Goodall commented on COUCHDB-188:
--------------------------------------

Testing against trunk shows that the new behaviour still has the same error. I think the following
test shows the problem.

couchTests.bulkdocs_delete_create = function(debug) {

    var db = new CouchDB("test_suite_db");
    db.deleteDb();
    db.createDb();

    var results = db.bulkSave([{_id: 'foo'}]);
    var orig_rev = results[0].rev;
    var results = db.bulkSave([{_id: 'foo', _rev: orig_rev, _deleted: true}, {_id: 'foo'}]);
    T(!results[0].error);
    T(results[1].rev != orig_rev);
    T(!results[1].error);
    T(results[1].rev != orig_rev);
  };


> _bulk_docs fails when deleting and adding a doc with the same id
> ----------------------------------------------------------------
>
>                 Key: COUCHDB-188
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-188
>             Project: CouchDB
>          Issue Type: Bug
>          Components: Database Core
>    Affects Versions: 0.9
>         Environment: CouchDB revision 730414.
>            Reporter: Matt Goodall
>             Fix For: 0.9
>
>
> CouchDB returns a "412 Precondition Failed" when the list of changes sent to _bulk_docs
deletes a document and later creates a document with the same id as the deleted document:
>     {"docs": [
>         {"_id": "docid", "_rev": "<rev>", "_deleted": true},
>         {"_id": "docid"}
>         ]}
> Once fixed, the response JSON document  will return the same docid twice in the list
but it's presumably ordered consistently with the request data so any client should be able
to understand the response.
> Demonstrating the problem using curl is easy enough:
> $ curl -X PUT http://localhost:5984/test
> {"ok":true}
> $ curl -X PUT -d "{}" http://localhost:5984/test/docid
> {"ok":true,"id":"docid","rev":"4140747751"}
> $ curl -X POST -d '{"docs": [{"_id": "docid", "_rev": "4140747751", "_deleted": true},
{"_id": "docid"}]}' http://localhost:5984/test/_bulk_docs
> {"error":"conflict","reason":"Document update conflict."}
> Note: this is likely related to COUCHDB-172.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message