From 8069d08b96d12d96ca06e2305d20f830b97e3177 Mon Sep 17 00:00:00 2001 From: Yicheng Qin Date: Wed, 22 Apr 2015 08:05:50 -0700 Subject: [PATCH] etcdserver: init server stats before passing it as argument It is more reasonable to init the variable before passing it as an argument. It fixes a bug that etcdserver may panic on server stats when processing a message from rafthttp streamReader before server stats is initialized in server.Start(). --- etcdserver/server.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etcdserver/server.go b/etcdserver/server.go index 16c68eec6..66299d5d4 100644 --- a/etcdserver/server.go +++ b/etcdserver/server.go @@ -239,6 +239,7 @@ func NewServer(cfg *ServerConfig) (*EtcdServer, error) { Name: cfg.Name, ID: id.String(), } + sstats.Initialize() lstats := stats.NewLeaderStats(id.String()) srv := &EtcdServer{ @@ -299,7 +300,6 @@ func (s *EtcdServer) start() { s.w = wait.New() s.done = make(chan struct{}) s.stop = make(chan struct{}) - s.stats.Initialize() // TODO: if this is an empty log, writes all peer infos // into the first entry go s.run()