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)