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

ASF subversion and git services commented on COUCHDB-3082:
----------------------------------------------------------

Commit 548e8391d05f79a4c3d61f1ea2ce9c78c6529956 in couchdb-couch-replicator's 
branch refs/heads/3082-replication-manager-rep_start_pids-fix from [~kzx]
[ 
https://git-wip-us.apache.org/repos/asf?p=couchdb-couch-replicator.git;h=548e839
 ]

Replication manager's rep_start_pids now contains only {Tag, Pid} items

Previously the local change feed was added to rep_start_pids as Pid only. So if
replication manager stopped and terminate/2 was called before that change
feed died, then

```
foreach(fun({_Tag, Pid}) -> ... end, [StartPids])
```

would crash with a function clause error.

Make sure add the replicator db name to the changes feed.

Also noticed this is the 4'th place we use hard-coded <<"_replicator">>, so
that's pulled into a macro.

Jira: COUCHDB-3082


> Replicator manager crashes in terminate/2 if initial change feed spawned for 
> _replicate hasn't finished
> -------------------------------------------------------------------------------------------------------
>
>                 Key: COUCHDB-3082
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-3082
>             Project: CouchDB
>          Issue Type: Bug
>            Reporter: Nick Vatamaniuc
>
> During init we spawn a change feed for the _replicator db and assign 
> rep_start_pids = [Pid]. However the shape of rep_start_pids should be {Tag, 
> Pid}. In terminate/2 we clean up by doing:
> {code}
> lists:foreach(
> fun({_Tag, Pid}) ->
> ...
> [{scanner, ScanPid} | StartPids]),
> {code}
>  
> Which ends up crashing with a function clause because we expect foreach 
> function to get a tuple of 2 items.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to