Merge pull request #1732 from yousong/bugfix/yousong-lb-weakref-bg

lb: 将lb.backendgroup视为弱引用
This commit is contained in:
yunion-ci-robot
2019-07-15 22:16:58 +08:00
committed by GitHub
@@ -245,7 +245,6 @@ func (lbbg *SLoadbalancerBackendGroup) refCount(men db.IModelManager) (int, erro
func (lbbg *SLoadbalancerBackendGroup) getRefManagers() []db.IModelManager {
// 引用Backend Group的数据库
return []db.IModelManager{
LoadbalancerManager,
LoadbalancerListenerManager,
LoadbalancerListenerRuleManager,
}
@@ -318,6 +317,16 @@ func (lbbg *SLoadbalancerBackendGroup) StartLoadBalancerBackendGroupCreateTask(c
}
func (lbbg *SLoadbalancerBackendGroup) LBPendingDelete(ctx context.Context, userCred mcclient.TokenCredential) {
if lb := lbbg.GetLoadbalancer(); lb != nil && lb.BackendGroupId == lbbg.Id {
if _, err := db.UpdateWithLock(ctx, lb, func() error {
lb.BackendGroupId = ""
return nil
}); err != nil {
log.Errorf("loadbalancer %s(%s): clear up backend group %s(%s): %v",
lb.Name, lb.Id, lbbg.Name, lbbg.Id, err)
return
}
}
lbbg.pendingDeleteSubs(ctx, userCred)
lbbg.DoPendingDelete(ctx, userCred)
}