code: func unlockHeldLocks(strategy string, stop chan struct{}, wg *sync.WaitGroup) {
  	defer wg.Done()
  	interval := initialInterval
  	for {
  		var reason string
  		select {
  		case <-stop:
  			return
  		case <-time.After(interval):
  			lck, err := setupLock()
  			if err != nil {
  				reason = "error setting up lock: " + err.Error()
  				break
  			}
  
  			err = unlockIfHeld(lck)
  			if err == nil {
  				return
  			}
  			reason = err.Error()
  		}
  
  		interval = expBackoff(interval)
  		dlog.Errorf("Unlocking old locks failed: %v. Retrying in %v.", reason, interval)
  	}
  }
docs: // unlockHeldLocks will loop until it can confirm that any held locks are
  // released or a stop signal is sent.