[ https://issues.apache.org/jira/browse/COUCHDB-1415?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dave Cottlehuber updated COUCHDB-1415: -------------------------------------- Fix Version/s: 1.3 Confirming this was discussed - I missed the details - c/ rnewson and davisp, paraphrased: - Fixing it changes long-standing semantics, basically a consequence of some work we did [...] when we decided to keep doc bodies instead of ?REV_MISSING. - Looks like it was COUCHDB-1163 and COUCHDB-885: ce6a0fb730ee16be5d17de793e95990d76f9426b is the sha for the commit on 1.2.x > 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 > Fix For: 1.3 > > > 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 is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira