Eric Ross created COUCHDB-1905:
----------------------------------

             Summary: PUT/GET/DELETE while compacting results in lost document.
                 Key: COUCHDB-1905
                 URL: https://issues.apache.org/jira/browse/COUCHDB-1905
             Project: CouchDB
          Issue Type: Bug
          Components: Database Core
            Reporter: Eric Ross


At https://gist.github.com/eross/6874115  is a test program that rapidly 
creates and deletes a document which has a application set _id.  Normally, this 
works correctly and the _rev is incremented as expected.  However, if a 
compaction is peformed (Compact Database) while executing this program the GET 
following the PUT will return a doc with a _rev of 1--* instead of the the _rev 
of the preceding PUT.

This problem was seen on both 1.3.0 and 1.4.0.

System config:
Built from Source with Erlang R14B04 on both RHEL 6 and Ubuntu 12.04 with the 
same results when executing on respective Linux distros.

Procedure:
Use a server in "Admin Party" mode running on http://localhost:5984 (default as 
shipped).  Then run this python program using Python 2.7.3 or equivalent and 
wait about 30 seconds.  By then, multiple deleted docs should be in the 
database.  The program will detect the first doc created since it should be 
_rev 1-*  and print it out.  When you execute the compaction, it will print out 
_rev 1-* again. (ERROR).  Also, when trying to delete the doc returned on the 
previous GET, it will come back 404. (see server logs).

This issue was mentioned on #couchdb to Jan Lenhardt (jan____ ) on 07-Oct.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to