What happens if you change the document? For example if you insert a field with a timestamp as in:
$ curl -X PUT -H "Content-type: application/json" http://hostname:7002/test/dummy -d '{ "_id": "dummy", "a": "'$(date +%s)'" }' Marcello 2011/11/22 Szabo, Viktor (Enterprise Infrastructure) <[email protected]>: > The very same thing happens: > > $ curl -X POST -H "Content-type: application/json" > http://hostname:7002/test/_compact > {"ok":true} > $ curl -X PUT -H "Content-type: application/json" > http://hostname:7002/test/dummy -d '{ "_id": "dummy" }' > {"ok":true,"id":"dummy","rev":"1-967a00dff5e02add41819138abb3284d"} > > By the way, I've been using the API doc found over here: > http://www.couchbase.org/sites/default/files/uploads/all/documentation/couchbase-api-dbdoc.html#couchbase-api-dbdoc_db_post > > Shouldn't I? > > Thanks, > Viktor > > -----Original Message----- > From: Robert Newson [mailto:[email protected]] > Sent: 22 November 2011 14:28 > To: [email protected] > Subject: Re: possible compact bug in 1.1.1 > > When couch requires a Referer header it is expecting form-data not json. So > it could be you have found a bug there. I'd call it serious if you can induce > the same thing with the correct input format. > > Use PUT instead of POST, drop the referer header and let us know what happens. > > Sent from my iPhone > > On 22 Nov 2011, at 10:44, "Szabo, Viktor (Enterprise Infrastructure)" > <[email protected]> wrote: > >> Hi CouchDB users, >> >> I don't know if this is a known issue or not, but I've been >> experiencing strange behaviour in version 1.1.1 after initiating >> compaction. Even though there's already a doc with the _id value of >> "dummy" in my database, if I want to have it re-inserted after a compact >> operation is started, 9 times out of 10, I receive an "ok":true >> notification. Occasionally I'm seeing the expected conflict error. >> >> $ curl -X POST -H "Content-type: application/json" >> http://hostname:7002/test/_compact >> {"ok":true} >> $ curl -X POST -H "Content-type: application/json" -H "Referer: >> http://hostname:7002/" http://hostname:7002/test -d '{ "_id": "dummy" }' >> {"ok":true,"id":"dummy","rev":"1-967a00dff5e02add41819138abb3284d"} >> $ curl -X POST -H "Content-type: application/json" >> http://hostname:7002/test/_compact >> {"ok":true} >> $ curl -X POST -H "Content-type: application/json" -H "Referer: >> http://hostname:7002/" http://hostname:7002/test -d '{ "_id": "dummy" }' >> {"ok":true,"id":"dummy","rev":"1-967a00dff5e02add41819138abb3284d"} >> How is this possible? >> >> Given that I sometimes get an "ok" confirmation, but sometimes get a >> "conflict error" for the very same request sent to the database with the >> very same content, I don't really feel secure about the integrity of the >> service. >> I'm thinking that the issue is related to the fact that the database >> already had accepted a doc with the same id and content, but still, >> undeterministic behaviour is not something I like. >> >> Do you have a clue on what might be going on? >> >> (I wasn't able to reproduce under 1.1.0. Used a single-node instance >> with no replication set up and no clients connecting to the service) >> >> Thanks, >> Viktor >> >> ---------------------------------------------------------------------- >> ---- >> NOTICE: Morgan Stanley is not acting as a municipal advisor and the opinions >> or views contained herein are not intended to be, and do not constitute, >> advice within the meaning of Section 975 of the Dodd-Frank Wall Street >> Reform and Consumer Protection Act. If you have received this communication >> in error, please destroy all electronic and paper copies and notify the >> sender immediately. Mistransmission is not intended to waive confidentiality >> or privilege. Morgan Stanley reserves the right, to the extent permitted >> under applicable law, to monitor electronic communications. This message is >> subject to terms available at the following link: >> http://www.morganstanley.com/disclaimers. If you cannot access these links, >> please notify us by reply message and we will send the contents to you. By >> messaging with Morgan Stanley you consent to the foregoing. > > -------------------------------------------------------------------------- > NOTICE: Morgan Stanley is not acting as a municipal advisor and the opinions > or views contained herein are not intended to be, and do not constitute, > advice within the meaning of Section 975 of the Dodd-Frank Wall Street Reform > and Consumer Protection Act. If you have received this communication in > error, please destroy all electronic and paper copies and notify the sender > immediately. Mistransmission is not intended to waive confidentiality or > privilege. Morgan Stanley reserves the right, to the extent permitted under > applicable law, to monitor electronic communications. This message is subject > to terms available at the following link: > http://www.morganstanley.com/disclaimers. If you cannot access these links, > please notify us by reply message and we will send the contents to you. By > messaging with Morgan Stanley you consent to the foregoing.
