From 098480ff98c8b1d26dd4d49aa459d11753321cf0 Mon Sep 17 00:00:00 2001 From: Naman Jain Date: Mon, 14 Dec 2020 12:26:50 +0530 Subject: [PATCH] fix(raftwal): unmarshal snapshot onto zerosnapshot instead of membershipState (#7125) (#7128) We were unmarshalling into incorrect type (MembershipState) the snapshot which contained data marshalled from ZeroSnapshot. This PR fixes that. (cherry picked from commit 55dd455394da0fc5b2d1c4afa5b14e7a572f940c) --- dgraph/cmd/debug/wal.go | 10 +++++----- dgraph/cmd/zero/raft.go | 8 ++++---- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/dgraph/cmd/debug/wal.go b/dgraph/cmd/debug/wal.go index c6087fa391a..21a820aa332 100644 --- a/dgraph/cmd/debug/wal.go +++ b/dgraph/cmd/debug/wal.go @@ -71,11 +71,11 @@ func printBasic(store RaftStore) (uint64, uint64) { } else { fmt.Printf("Snapshot Metadata: %+v\n", snap.Metadata) var ds pb.Snapshot - var ms pb.MembershipState + var zs pb.ZeroSnapshot if err := ds.Unmarshal(snap.Data); err == nil { fmt.Printf("Snapshot Alpha: %+v\n", ds) - } else if err := ms.Unmarshal(snap.Data); err == nil { - for gid, group := range ms.GetGroups() { + } else if err := zs.Unmarshal(snap.Data); err == nil { + for gid, group := range zs.State.GetGroups() { fmt.Printf("\nGROUP: %d\n", gid) for _, member := range group.GetMembers() { fmt.Printf("Member: %+v .\n", member) @@ -87,8 +87,8 @@ func printBasic(store RaftStore) (uint64, uint64) { group.Tablets = nil fmt.Printf("Group: %d %+v .\n", gid, group) } - ms.Groups = nil - fmt.Printf("\nSnapshot Zero: %+v\n", ms) + zs.State.Groups = nil + fmt.Printf("\nSnapshot Zero: %+v\n", zs) } else { fmt.Printf("Unable to unmarshal Dgraph snapshot: %v", err) } diff --git a/dgraph/cmd/zero/raft.go b/dgraph/cmd/zero/raft.go index 553914fd596..78de3e40bd9 100644 --- a/dgraph/cmd/zero/raft.go +++ b/dgraph/cmd/zero/raft.go @@ -546,11 +546,11 @@ func (n *node) initAndStartNode() error { // It is important that we pick up the conf state here. n.SetConfState(&sp.Metadata.ConfState) - var state pb.MembershipState - x.Check(state.Unmarshal(sp.Data)) - n.server.SetMembershipState(&state) + var zs pb.ZeroSnapshot + x.Check(zs.Unmarshal(sp.Data)) + n.server.SetMembershipState(zs.State) for _, id := range sp.Metadata.ConfState.Nodes { - n.Connect(id, state.Zeros[id].Addr) + n.Connect(id, zs.State.Zeros[id].Addr) } }