increase event handling buffer

this should mitigate a timing issue where joining larger clusters would
cause cluster.members() to deadlock.
This commit is contained in:
Leo Antunes 2019-08-24 20:27:58 +02:00
parent 98b85ff318
commit a46d8ac18d
1 changed files with 4 additions and 2 deletions

View File

@ -101,8 +101,10 @@ func newCluster(config *config, wg *wgState) (*cluster, error) {
localName: ml.LocalNode().Name,
ml: ml,
wg: wg,
events: make(chan memberlist.NodeEvent, 1),
state: state,
// The big channel buffer is a work-around for https://github.com/hashicorp/memberlist/issues/23
// More than this many simultaneous events will deadlock cluster.members()
events: make(chan memberlist.NodeEvent, 100),
state: state,
}
mlConfig.Conflict = &cluster
mlConfig.Events = &memberlist.ChannelEventDelegate{Ch: cluster.events}