diff --git a/etcdserver/membership/cluster.go b/etcdserver/membership/cluster.go index eb970566f..bf29c7360 100644 --- a/etcdserver/membership/cluster.go +++ b/etcdserver/membership/cluster.go @@ -311,6 +311,9 @@ func (c *RaftCluster) UpdateAttributes(id types.ID, attr Attributes) { if c.store != nil { mustUpdateMemberAttrInStore(c.store, m) } + if c.be != nil { + mustSaveMemberToBackend(c.be, m) + } return } _, ok := c.removed[id] diff --git a/etcdserver/membership/store.go b/etcdserver/membership/store.go index c2c940607..b153c2024 100644 --- a/etcdserver/membership/store.go +++ b/etcdserver/membership/store.go @@ -42,7 +42,7 @@ var ( func mustSaveMemberToBackend(be backend.Backend, m *Member) { mkey := backendMemberKey(m.ID) - mvalue, err := json.Marshal(m.RaftAttributes) + mvalue, err := json.Marshal(m) if err != nil { plog.Panicf("marshal raftAttributes should never fail: %v", err) } @@ -134,7 +134,7 @@ func nodeToMember(n *store.NodeExtern) (*Member, error) { } func backendMemberKey(id types.ID) []byte { - return []byte(path.Join(id.String(), raftAttributesSuffix)) + return []byte(id.String()) } func MemberStoreKey(id types.ID) string {