Skip to content

Commit 26ca130

Browse files
committed
Merge pull request #10 from vvb/np_timeout_handling
fix for netplugin service registeration repetitive failures
2 parents 44379b7 + 4dbddc6 commit 26ca130

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

etcdLock.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -285,8 +285,8 @@ func (ep *Lock) waitForLock() {
285285

286286
// Refresh lock
287287
func (ep *Lock) refreshLock() {
288-
// Refresh interval is 40% of TTL
289-
refreshIntvl := time.Second * time.Duration(ep.ttl*3/10)
288+
// Refresh interval is 1/3rd of TTL
289+
refreshIntvl := time.Second * time.Duration(ep.ttl/3)
290290
keyName := "/contiv.io/lock/" + ep.name
291291

292292
// Loop forever

etcdService.go

+7-1
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,13 @@ func refreshService(client *etcd.Client, keyName string, keyVal string, stopChan
270270

271271
_, err := client.Update(keyName, keyVal, SERVICE_TTL)
272272
if err != nil {
273-
log.Errorf("Error updating key %s, Err: %v", keyName, err)
273+
log.Warnf("Error updating key %s, Err: %v", keyName, err)
274+
// In case of a TTL expiry, this key may have been deleted
275+
// from the etcd db. Hence use of Set instead of Update
276+
_, err := client.Set(keyName, keyVal, SERVICE_TTL)
277+
if err != nil {
278+
log.Errorf("Error setting key %s, Err: %v", keyName, err)
279+
}
274280
}
275281

276282
case <-stopChan:

0 commit comments

Comments
 (0)