[
https://issues.apache.org/jira/browse/COUCHDB-863?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12922977#action_12922977
]
Adam Kocoloski commented on COUCHDB-863:
----------------------------------------
Hi Randall, the first part of the patch, in which the source or target is set
to nil if it was the source of the 'DOWN' message, makes sense. Although I
think it could be simpler - the process is going to die, so calling close_db()
for any DB is actually unnecessary, right? The reference counters will be
decremented automatically when couch_rep exits. Same thing with deleting the
ets table.
I'm having a little bit of trouble following some of the rest of the patch. It
looks like you've changed terminate(normal, State) so that it does not try to
save a final checkpoint even if one was scheduled. Was that intentional?
It looks like we're using the shutdown Reason for continuous replications. I'm
not quite sure what's going on there, but I think returning {ok, stopped} for a
non-continuous replication will cause an error in the client process handling
the initial _replicate request. I realize that's not specific to your patch,
it's just something else I'm confused about.
A small note - you don't need to guard a call to timer:cancel(Checkpoint). If
checkpoint is not a valid timer reference the function returns {error, badarg}
but it does not crash anything.
> error log noise when a DELETE kills a replication
> -------------------------------------------------
>
> Key: COUCHDB-863
> URL: https://issues.apache.org/jira/browse/COUCHDB-863
> Project: CouchDB
> Issue Type: Improvement
> Components: Replication
> Affects Versions: 1.0.1
> Reporter: Randall Leeds
> Priority: Trivial
> Attachments:
> 0001-die-cleanly-when-local-replication-db-goes-away.patch,
> 0001-refactor-replication-shutdown.patch
>
>
> couch_ref_counter:drop will complain, dying with noproc, if the reference
> counter does not exist.
> couch_rep listens for the 'DOWN' message but then tries to terminate, closing
> both source and target dbs. If either one was the source of the 'DOWN'
> message because it was deleted, this causes loud complaints in the log and
> gen_server exits. We can do this more cleanly.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.