diff --git a/etcdserver/api/v2store/store.go b/etcdserver/api/v2store/store.go index a2dca7118..cacf7e84a 100644 --- a/etcdserver/api/v2store/store.go +++ b/etcdserver/api/v2store/store.go @@ -610,7 +610,9 @@ func (s *store) internalCreate(nodePath string, dir bool, value string, unique, } e.PrevNode = n.Repr(false, false, s.clock) - n.Remove(false, false, nil) + if err := n.Remove(false, false, nil); err != nil { + return nil, err + } } else { return nil, v2error.NewError(v2error.EcodeNodeExist, nodePath, currIndex) } @@ -630,7 +632,9 @@ func (s *store) internalCreate(nodePath string, dir bool, value string, unique, } // we are sure d is a directory and does not have the children with name n.Name - d.Add(n) + if err := d.Add(n); err != nil { + return nil, err + } // node with TTL if !n.IsPermanent() {