[
https://issues.apache.org/jira/browse/COUCHDB-3082?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15394399#comment-15394399
]
ASF subversion and git services commented on COUCHDB-3082:
----------------------------------------------------------
Commit 17cb967243b9b7111a331fea796976c53718dd7d 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=17cb967
]
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.
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)