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-292) A deleted document may be resaved with an old revision and is then considered undeleted
Date Thu, 26 Mar 2009 23:14:50 GMT

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

Matt Goodall commented on COUCHDB-292:
--------------------------------------

Here's a test:

couchTests.undead = function(debug) {

    // Create fresh database
    var db = new CouchDB("test_suite_db");
    db.deleteDb();
    db.createDb();

    // Create a document
    var results = db.bulkSave([{_id: "foo"}]);
    var original_rev = results[0].rev;
    T(db.info().doc_count == 1);

    // Delete the document.
    var results = db.bulkSave([{_id: "foo", _rev: original_rev, _deleted: true}]);
    T(results[0].rev != original_rev);
    T(db.info().doc_count == 0);

    // Try to raise the document from the grave (shouldn't work).
    var results = db.bulkSave([{_id: "foo", _rev: original_rev}]);
    T(results[0].error == "conflict");
    T(db.info().doc_count == 0);
  };


> A deleted document may be resaved with an old revision and is then considered undeleted
> ---------------------------------------------------------------------------------------
>
>                 Key: COUCHDB-292
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-292
>             Project: CouchDB
>          Issue Type: Bug
>          Components: Database Core
>    Affects Versions: 0.9
>            Reporter: Paul Carey
>             Fix For: 0.10
>
>
> If a document is deleted, a PUT request may be issued with the same revision that was
passed to the DELETE request. When this happens the previously deleted document is assigned
a new revision and is no longer considered deleted.
> This behaviour is new within the last few weeks.
> The following curl session illustrates the issue. 
> 08:18 : ~ $ curl -X PUT -d '{"_id":"foo"}' localhost:5984/scratch/foo
> {"ok":true,"id":"foo","rev":"1-3690485448"}
> 08:19 : ~ $ curl -X PUT -d '{"_id":"foo","_rev":"1-3690485448"}' localhost:5984/scratch/foo
> {"ok":true,"id":"foo","rev":"2-966942539"}
> 08:19 : ~ $ curl -X DELETE localhost:5984/scratch/foo?rev="2-966942539"
> {"ok":true,"id":"foo","rev":"3-421182311"}
> 08:20 : ~ $ curl -X GET localhost:5984/scratch/foo
> {"error":"not_found","reason":"deleted"}
> 08:20 : ~ $ curl -X PUT -d '{"_id":"foo","_rev":"2-966942539"}' localhost:5984/scratch/foo
> {"ok":true,"id":"foo","rev":"3-1867999175"}
> 08:20 : ~ $ curl -X GET localhost:5984/scratch/foo
> {"_id":"foo","_rev":"3-1867999175"}

-- 
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