Skip to content

Commit

Permalink
Merge pull request #3 from abstractmj/fea-clb-portpool
Browse files Browse the repository at this point in the history
fix: fix deployment update resource hang forever problem in zookeeper store
  • Loading branch information
abstractmj committed Jul 6, 2021
2 parents 7e58534 + 185d777 commit 2f18cc4
Show file tree
Hide file tree
Showing 6 changed files with 25 additions and 39 deletions.
24 changes: 19 additions & 5 deletions bcs-mesos/bcs-scheduler/src/manager/sched/scheduler/transaction.go
Original file line number Diff line number Diff line change
Expand Up @@ -141,17 +141,31 @@ func (s *Scheduler) updateTransactionDeployment(transaction *types.Transaction)
ns := transaction.Namespace
currDeployment, err := s.store.FetchDeployment(ns, name)
if err != nil {
if errors.Is(err, store.ErrNoFound) {
blog.Infof("transaction %s finished, deployment(%s.%s) not found, no need update deployment",
transaction.TransactionID, ns, name)
return nil
}
return fmt.Errorf("get deployment(%s.%s) failed when finish transaction, err %s",
ns, name, err.Error())
}
appName := currDeployment.Application.ApplicationName
currApp, err := s.store.FetchApplication(ns, appName)
if err != nil {
return fmt.Errorf("get application(%s.%s) failed when UpdateDeploymentResource, err %s",
ns, appName, err.Error())
}
if currApp.Message != types.APP_STATUS_RUNNING_STR {
currDeployment.Message = currApp.Message
if !errors.Is(err, store.ErrNoFound) {
return fmt.Errorf("transaction %s get application(%s.%s) failed when UpdateDeploymentResource, err %s",
transaction.TransactionID, ns, appName, err.Error())

}
blog.Infof("transaction %s finished, application(%s.%s) of deployment(%s.%s) not found",
transaction.TransactionID, ns, appName, ns, name)
currDeployment.Message = fmt.Sprintf(
"transaction %s finished, application(%s.%s) of deployment(%s.%s) not found",
transaction.TransactionID, ns, appName, ns, name)
} else {
if currApp.Message != types.APP_STATUS_RUNNING_STR {
currDeployment.Message = currApp.Message
}
}
currDeployment.Status = types.DEPLOYMENT_STATUS_RUNNING
if err := s.store.SaveDeployment(currDeployment); err != nil {
Expand Down
16 changes: 0 additions & 16 deletions bcs-mesos/bcs-scheduler/src/manager/store/zk/agent.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ import (
"github.com/Tencent/bk-bcs/bcs-common/common/blog"
commtypes "github.com/Tencent/bk-bcs/bcs-common/common/types"
"github.com/Tencent/bk-bcs/bcs-common/pkg/scheduler/schetypes"
schStore "github.com/Tencent/bk-bcs/bcs-mesos/bcs-scheduler/src/manager/store"

"github.com/samuel/go-zookeeper/zk"
)
Expand Down Expand Up @@ -56,9 +55,6 @@ func (store *managerStore) FetchAgent(Key string) (*types.Agent, error) {

data, err := store.Db.Fetch(path)
if err != nil {
if err == zk.ErrNoNode {
return nil, schStore.ErrNoFound
}
return nil, err
}

Expand Down Expand Up @@ -116,12 +112,6 @@ func (store *managerStore) FetchAgentSetting(InnerIP string) (*commtypes.BcsClus
path := getAgentSettingRootPath() + "/" + InnerIP

data, err := store.Db.Fetch(path)

if err == zk.ErrNoNode {
blog.V(3).Infof("agentSetting(%s) not exist", path)
return nil, schStore.ErrNoFound
}

if err != nil {
return nil, err
}
Expand Down Expand Up @@ -202,12 +192,6 @@ func (store *managerStore) FetchAgentSchedInfo(HostName string) (*types.AgentSch
path := getAgentSchedInfoRootPath() + "/" + HostName

data, err := store.Db.Fetch(path)

if err == zk.ErrNoNode {
blog.V(3).Infof("agentSchedInfo(%s) not exist", path)
return nil, schStore.ErrNoFound
}

if err != nil {
return nil, err
}
Expand Down
6 changes: 0 additions & 6 deletions bcs-mesos/bcs-scheduler/src/manager/store/zk/application.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,6 @@ import (

"github.com/Tencent/bk-bcs/bcs-common/common/blog"
"github.com/Tencent/bk-bcs/bcs-common/pkg/scheduler/schetypes"
schStore "github.com/Tencent/bk-bcs/bcs-mesos/bcs-scheduler/src/manager/store"

"github.com/samuel/go-zookeeper/zk"
)

var appLocks map[string]*sync.Mutex
Expand Down Expand Up @@ -123,9 +120,6 @@ func (store *managerStore) FetchApplication(runAs, appID string) (*types.Applica

data, err := store.Db.Fetch(path)
if err != nil {
if err == zk.ErrNoNode {
return nil, schStore.ErrNoFound
}
return nil, err
}

Expand Down
6 changes: 6 additions & 0 deletions bcs-mesos/bcs-scheduler/src/manager/store/zk/dbzk.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ import (

"github.com/Tencent/bk-bcs/bcs-common/common/zkclient"
"github.com/Tencent/bk-bcs/bcs-mesos/bcs-scheduler/src/manager/store"
schStore "github.com/Tencent/bk-bcs/bcs-mesos/bcs-scheduler/src/manager/store"

gozk "github.com/samuel/go-zookeeper/zk"
)

//dbZk is a struct of the zookeeper client
Expand Down Expand Up @@ -63,6 +66,9 @@ func (zk *dbZk) Fetch(path string) ([]byte, error) {

data, err := zk.ZkCli.Get(path)
if err != nil {
if err == gozk.ErrNoNode {
err = schStore.ErrNoFound
}
failed = true
}

Expand Down
6 changes: 0 additions & 6 deletions bcs-mesos/bcs-scheduler/src/manager/store/zk/deployment.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,6 @@ import (

"github.com/Tencent/bk-bcs/bcs-common/common/blog"
"github.com/Tencent/bk-bcs/bcs-common/pkg/scheduler/schetypes"
schStore "github.com/Tencent/bk-bcs/bcs-mesos/bcs-scheduler/src/manager/store"

"github.com/samuel/go-zookeeper/zk"
)

var deploymentLocks map[string]*sync.Mutex
Expand Down Expand Up @@ -87,9 +84,6 @@ func (store *managerStore) FetchDeployment(ns, name string) (*types.Deployment,
path := getDeploymentRootPath() + ns + "/" + name
data, err := store.Db.Fetch(path)
if err != nil {
if err == zk.ErrNoNode {
return nil, schStore.ErrNoFound
}
return nil, err
}
deployment := &types.Deployment{}
Expand Down
6 changes: 0 additions & 6 deletions bcs-mesos/bcs-scheduler/src/manager/store/zk/task.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,6 @@ import (

"github.com/Tencent/bk-bcs/bcs-common/common/blog"
"github.com/Tencent/bk-bcs/bcs-common/pkg/scheduler/schetypes"
schStore "github.com/Tencent/bk-bcs/bcs-mesos/bcs-scheduler/src/manager/store"

"github.com/samuel/go-zookeeper/zk"
)

func getTaskRootPath() string {
Expand Down Expand Up @@ -141,9 +138,6 @@ func (store *managerStore) FetchTask(taskId string) (*types.Task, error) {

data, err := store.Db.Fetch(path)
if err != nil {
if err == zk.ErrNoNode {
return nil, schStore.ErrNoFound
}
return nil, err
}

Expand Down

0 comments on commit 2f18cc4

Please sign in to comment.