File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -471,7 +471,7 @@ func (ep *endpoint) rename(name string) error {
471471 // benign error. Besides there is no meaningful recovery that
472472 // we can do. When the cluster recovers subsequent EpCnt update
473473 // will force the peers to get the correct EP name.
474- _ = n .getEpCnt ().updateStore ()
474+ n .getEpCnt ().updateStore ()
475475
476476 return err
477477}
Original file line number Diff line number Diff line change @@ -109,22 +109,18 @@ func (ec *endpointCnt) EndpointCnt() uint64 {
109109}
110110
111111func (ec * endpointCnt ) updateStore () error {
112- retry:
113112 store := ec .n .getController ().getStore (ec .DataScope ())
114113 if store == nil {
115- return fmt .Errorf ("store not found for scope %s" , ec .DataScope ())
114+ return fmt .Errorf ("store not found for scope %s on endpoint count update " , ec .DataScope ())
116115 }
117-
118- if err := ec .n .getController ().updateToStore (ec ); err != nil {
119- if err == datastore .ErrKeyModified {
120- if err := store .GetObject (datastore .Key (ec .Key ()... ), ec ); err != nil {
121- return fmt .Errorf ("could not update the kvobject to latest on rename: %v" , err )
122- }
123- goto retry
116+ for {
117+ if err := ec .n .getController ().updateToStore (ec ); err == nil || err != datastore .ErrKeyModified {
118+ return err
119+ }
120+ if err := store .GetObject (datastore .Key (ec .Key ()... ), ec ); err != nil {
121+ return fmt .Errorf ("could not update the kvobject to latest on endpoint count update: %v" , err )
124122 }
125- return err
126123 }
127- return nil
128124}
129125
130126func (ec * endpointCnt ) atomicIncDecEpCnt (inc bool ) error {
Original file line number Diff line number Diff line change @@ -205,7 +205,6 @@ func (sb *sandbox) Delete() error {
205205
206206func (sb * sandbox ) Rename (name string ) error {
207207 var err error
208- undo := []func (){}
209208
210209 for _ , ep := range sb .getConnectedEndpoints () {
211210 if ep .endpointInGWNetwork () {
@@ -217,18 +216,14 @@ func (sb *sandbox) Rename(name string) error {
217216 if err = ep .rename (name ); err != nil {
218217 break
219218 }
220- undo = append (undo ,
221- func () {
222- // Ignore the error while undoing
223- _ = lEp .rename (oldName )
224- })
225- }
226219
227- if err != nil {
228- for _ , f := range undo {
229- f ()
230- }
220+ defer func () {
221+ if err != nil {
222+ lEp .rename (oldName )
223+ }
224+ }()
231225 }
226+
232227 return err
233228}
234229
You can’t perform that action at this time.
0 commit comments