[
https://issues.apache.org/jira/browse/COUCHDB-1415?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13789225#comment-13789225
]
Dave Cottlehuber commented on COUCHDB-1415:
-------------------------------------------
[~eric ross] thanks that would be appreciated.
https://github.com/apache/couchdb/blob/master/share/doc/src/contributing.rst
has notes on how to do this, feel free to ask any questions. An attached patch
is also fine if you are not yet a git user.
Both yourself and [~lancecarlson], does this bug come up in *real_world* usage?
I'm trying to imagine a situation where I add & delete the same content
furiously in practice, and I can't think of one that actually makes sense (i.e.
fits with the grain of couchdb). I'd either use redis for this type of frequent
state changing transaction, or consider using something that preserves the
transaction history.
> Re-insering a document silently fails after compact is executed
> ---------------------------------------------------------------
>
> Key: COUCHDB-1415
> URL: https://issues.apache.org/jira/browse/COUCHDB-1415
> Project: CouchDB
> Issue Type: Bug
> Components: Database Core
> Affects Versions: 1.1.1
> Environment: Tested on multiple linux platforms
> Reporter: Viktor Szabo
> Assignee: Paul Joseph Davis
>
> When a document is re-inserted after a compact operation using the same
> contents it was originally created, the insert operation is silently ignored,
> leaving the client unaware of the fact it's document is not available in the
> database.
> Can be reproduced using the following sequence of steps:
> alias curl='curl -H "Content-Type: application/json"'
> url="http://localhost:5984/database"
> 1 curl -X PUT $url
> 2 curl -X POST $url -d '{"_id": "bug", "key": "value"}'
> 3 curl -X DELETE "$url/bug?rev=1-59414e77c768bc202142ac82c2f129de"
> 4 curl -X POST "$url/_compact"
> 5 curl -X POST $url -d '{"_id": "bug", "key": "value"}'
> 6 curl -X GET "$url/bug"
> (bug here)
> 1 {"ok":true}
> 201
> 2 [{"ok":true,"id":"bug","rev":"1-59414e77c768bc202142ac82c2f129de"}]
> 201
> 3 {"ok":true,"id":"bug","rev":"2-9b2e3bcc3752a3a952a3570b2ed4d27e"}
> 200
> 4 {"ok":true}
> 202
> 5 [{"ok":true,"id":"bug","rev":"1-59414e77c768bc202142ac82c2f129de"}]
> 201
> 6 {"error":"not_found","reason":"deleted"}
> 404
> CouchDB shouldn't report "ok" on step 5 and then go on to claim that the doc
> is deleted. Also, it seems to work on second try:
> 7 curl -X POST $url -d '{"_id": "bug", "key": "value"}'
> 8 curl -X GET "$url/bug"
> 7 {"ok":true,"id":"bug","rev":"3-674f864b73df1c80925e48436e21d550"}
> 201
> 8 {"_id":"bug","_rev":"3-674f864b73df1c80925e48436e21d550","key":"value"}
> 200
--
This message was sent by Atlassian JIRA
(v6.1#6144)