From cdea98d43427fbe4f61d27d7a7bdb5c1586afa39 Mon Sep 17 00:00:00 2001 From: Yicheng Qin Date: Tue, 7 Oct 2014 11:10:49 -0700 Subject: [PATCH] etcdserver: skip bootstrap addNode entry This is a hack to make etcd work normally. --- etcdserver/server.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/etcdserver/server.go b/etcdserver/server.go index f5381a0dc..c5fbd1e5d 100644 --- a/etcdserver/server.go +++ b/etcdserver/server.go @@ -526,6 +526,14 @@ func (s *EtcdServer) applyConfChange(cc raftpb.ConfChange) { s.node.ApplyConfChange(cc) switch cc.Type { case raftpb.ConfChangeAddNode: + // TODO(yichengq): this is the hack and should be removed SOON. + // Bootstrap write addNode entries into log, which don't set Context + // value. They don't need to be applied because now we do it explicitly + // before server starts. This hack makes etcd work, and will be removed + // in the following PR. + if cc.Context == nil { + break + } var m Member if err := json.Unmarshal(cc.Context, &m); err != nil { panic("unexpected unmarshal error")