[ 
https://issues.apache.org/jira/browse/COUCHDB-1906?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13837063#comment-13837063
 ] 

Ryan Ramage commented on COUCHDB-1906:
--------------------------------------

Just a note, I was bit by this with create_target: true. Some edited for 
readability irc logs:

ryan_ramage: ok, noticed a weird one today…just checking if my head is on 
right…I created a db with a _replicator doc ends up looking like this: 
https://gist.github.com/ryanramage/7760588  then I delete the db, and within 
seconds, the database is recreated, with the ddoc in it again
[3:56pm] ryan_ramage: I assume the replicator is not respecting my DELETE     
(on 1.5)
[3:57pm] rnewson: ryan_ramage:  "create_target": true,
[3:57pm] ryan_ramage: yeah
[3:57pm] rnewson: ryan_ramage: the replicator is doing what you asked it to do.
[3:58pm] ryan_ramage: recreate_target: false 
[3:58pm] ryan_ramage: rnewson: I get that, but something does not feel right 
about it
[3:59pm] rnewson: really? it makes perfect sense to me.
[3:59pm] wickedgrey: yeah, this is basically the same issue that i reported a 
month or so ago, regarding replications not stopping after deleting the DB 
(mine was removing the source, not the target)
[3:59pm] ryan_ramage: wickedgrey: do you have a jira num I can look at the 
discussion?
[3:59pm] wickedgrey: sure, one moment
[4:00pm] rnewson: you've asked couchdb to persistently, relentlessly and 
continuously replicate source to target, creating the target if it's missing. 
If the target is deleted, the replication job crashes, is restarted, recreates, 
carries on.
[4:01pm] rnewson: you need to stop the thing that creates the db if you want 
the db to not be created.
[4:01pm] wickedgrey: https://issues.apache.org/jira/browse/COUCHDB-1906
[4:01pm] kandinski: or have a 'deleted' property in the document, and use that 
instead of DELETE
[4:03pm] ryan_ramage: rnewson: will have to ponder. seems to violate 
http://en.wikipedia.org/wiki/Principle_of_least_astonishment
[4:03pm] wickedgrey: rnewson: perhaps i should be stating this in the ticket, 
but i maintain that it's surprising behavior.
[4:03pm] kandinski: you should delete the replication document first, then the 
database
[4:03pm] rnewson: it would be more surprising for the replicator to be that 
tightly coupled to quite separate things like remote databases.


[4:05pm] wickedgrey: i think that the behavior gets a lot more obvious when the 
implementation is known.  to a pure-user of the system, it's not obvious that 
the current behavior is going to be what happens.
[4:06pm] rnewson: the state that the server is in when you delete the database 
and don't want to recreate it is is the same as when the target doesn't exist 
and you do want it to create it.
[4:06pm] ryan_ramage: I expect create_target to fire once and only once
[4:06pm] rnewson: the lesson is to avoid create_target:true
[4:06pm] ryan_ramage: or maybe depreciate create_target
[4:07pm] wickedgrey: ryan_ramage: note that you get a similar error condition 
when you delete the source DB (though the symptom is lots of errors in the 
couch.log, rather than recreated DBs)
[4:08pm] wickedgrey: the problem isn't inherently tied to create_target
[4:08pm] ryan_ramage: yes I see
[4:08pm] rnewson: ryan_ramage: remove a feature just for you? I don't think so. 
[4:10pm] ryan_ramage: kandinski: yeah, I have lots of options for ways to 
solve, just this is a strange intersection of a couple of the couch apis
[4:10pm] ryan_ramage: and the idea of a pulled out replicator puts a +1 in 
rnewson camp
[4:10pm] ryan_ramage: as they are separate things

> Removing DB referenced by _replicator should halt replication / remove doc 
> ---------------------------------------------------------------------------
>
>                 Key: COUCHDB-1906
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-1906
>             Project: CouchDB
>          Issue Type: Improvement
>          Components: Replication
>            Reporter: Eli Stevens
>
> Removing a DB that is involved in replication via the _replicator DB should 
> remove the corresponding _replicator document.
> Currently, couch.log includes errors when the DB is removed.
> My perspective is that replication is "just a feature of a DB" in the same 
> way that attachments are; one doesn't need to separately remove attachments 
> after deleting a DB, and similarly I've already expressed that I'm no longer 
> interested the DB, its attachments, its replications, etc. by deleting it.



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

Reply via email to