[ 
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.

Reply via email to