Merge pull request #1117 from travisturner/cluster-resize-handle-error

replace swallowed error with log entry
This commit is contained in:
Travis Turner 2018-02-23 16:37:42 -06:00 committed by GitHub
commit 29dcfd06da
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 19 additions and 6 deletions

View file

@ -405,6 +405,8 @@ func (c *Cluster) setState(state string) {
if c.state == ClusterStateResizing {
doCleanup = true
}
default:
panic(fmt.Sprintf("invalid cluster state: %s", state))
}
c.state = state

View file

@ -346,12 +346,16 @@ func (g *GossipMemberSet) MergeRemoteState(buf []byte, join bool) {
type GossipEventReceiver struct {
ch chan memberlist.NodeEvent
eventHandler pilosa.EventHandler
// The writer for any logging.
LogOutput io.Writer
}
// NewGossipEventReceiver returns a new instance of GossipEventReceiver.
func NewGossipEventReceiver() *GossipEventReceiver {
func NewGossipEventReceiver(logOutput io.Writer) *GossipEventReceiver {
return &GossipEventReceiver{
ch: make(chan memberlist.NodeEvent, 1),
ch: make(chan memberlist.NodeEvent, 1),
LogOutput: logOutput,
}
}
@ -374,6 +378,11 @@ func (g *GossipEventReceiver) Start(h pilosa.EventHandler) error {
return nil
}
// logger returns a logger for the GossipEventReceiver.
func (g *GossipEventReceiver) logger() *log.Logger {
return log.New(g.LogOutput, "", log.LstdFlags)
}
func (g *GossipEventReceiver) listen() {
var nodeEventType pilosa.NodeEventType
for {
@ -400,7 +409,9 @@ func (g *GossipEventReceiver) listen() {
Event: nodeEventType,
Node: node,
}
_ = g.eventHandler.ReceiveEvent(ne)
if err := g.eventHandler.ReceiveEvent(ne); err != nil {
g.logger().Printf("receive event error: %s", err)
}
}
}

View file

@ -54,7 +54,7 @@ func TestMain_SendReceiveMessage(t *testing.T) {
m0.Server.Cluster.Coordinator = m0.Server.URI
m0.Server.Cluster.Topology = &pilosa.Topology{NodeIDs: []string{m0.Server.NodeID, m1.Server.NodeID}}
m0.Server.Cluster.EventReceiver = gossip.NewGossipEventReceiver()
m0.Server.Cluster.EventReceiver = gossip.NewGossipEventReceiver(m0.Server.LogOutput)
gossipMemberSet0, err := gossip.NewGossipMemberSet(m0.Server.URI.HostPort(), m0.Config, m0.Server)
if err != nil {
t.Fatal(err)
@ -81,7 +81,7 @@ func TestMain_SendReceiveMessage(t *testing.T) {
m1.Config.Gossip.Seeds = gossipMemberSet0.Seeds()
m1.Server.Cluster.Coordinator = m0.Server.URI
m1.Server.Cluster.EventReceiver = gossip.NewGossipEventReceiver()
m1.Server.Cluster.EventReceiver = gossip.NewGossipEventReceiver(m1.Server.LogOutput)
gossipMemberSet1, err := gossip.NewGossipMemberSet(m1.Server.URI.HostPort(), m1.Config, m1.Server)
if err != nil {
t.Fatal(err)

View file

@ -260,7 +260,7 @@ func (m *Command) SetupNetworking() error {
m.Server.NodeID = m.Server.LoadNodeID()
m.Server.Cluster.EventReceiver = gossip.NewGossipEventReceiver()
m.Server.Cluster.EventReceiver = gossip.NewGossipEventReceiver(m.Server.LogOutput)
gossipMemberSet, err := gossip.NewGossipMemberSetWithTransport(m.Server.NodeID, m.Config, transport, m.Server)
if err != nil {
return err