From 9db12374eac41bd2b32c769f19f853acca04ed0d Mon Sep 17 00:00:00 2001 From: "Philippe M. Chiasson" Date: Fri, 22 Sep 2017 10:14:03 -0400 Subject: [PATCH] Be certain to clear our marshalled representation before reloading it --- cluster/datastore.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cluster/datastore.go b/cluster/datastore.go index ee8f56d9d..47bfd89ba 100644 --- a/cluster/datastore.go +++ b/cluster/datastore.go @@ -199,6 +199,10 @@ func (d *Datastore) get() *Metadata { func (d *Datastore) Load() (Object, error) { d.localLock.Lock() defer d.localLock.Unlock() + + // clear Object first, as mapstructure's decoder doesn't have ZeroFields set to true for merging purposes + d.meta.Object = d.meta.Object[:0] + err := d.kv.LoadConfig(d.meta) if err != nil { return nil, err