diff --git a/common-lib/utils/grpc/GrpcConfig.go b/common-lib/utils/grpc/GrpcConfig.go index 0ac82eeda..f9c7e4e9a 100644 --- a/common-lib/utils/grpc/GrpcConfig.go +++ b/common-lib/utils/grpc/GrpcConfig.go @@ -2,9 +2,11 @@ package grpc import "github.com/caarlos0/env" +// CATEGORY=INFRA_SETUP type Configuration struct { - KubelinkMaxRecvMsgSize int `env:"KUBELINK_GRPC_MAX_RECEIVE_MSG_SIZE" envDefault:"20"` // In mb - KubelinkMaxSendMsgSize int `env:"KUBELINK_GRPC_MAX_SEND_MSG_SIZE" envDefault:"4"` // In mb + KubelinkMaxRecvMsgSize int `env:"KUBELINK_GRPC_MAX_RECEIVE_MSG_SIZE" envDefault:"20"` // In mb + KubelinkMaxSendMsgSize int `env:"KUBELINK_GRPC_MAX_SEND_MSG_SIZE" envDefault:"4"` // In mb + KubelinkGRPCServiceConfig string `env:"KUBELINK_GRPC_SERVICE_CONFIG" envDefault:"{\"loadBalancingPolicy\":\"round_robin\"}" description:"kubelink grpc service config"` } func GetConfiguration() (*Configuration, error) { diff --git a/git-sensor/pkg/RepoManages.go b/git-sensor/pkg/RepoManages.go index 5aec548f4..e3f69a3b7 100644 --- a/git-sensor/pkg/RepoManages.go +++ b/git-sensor/pkg/RepoManages.go @@ -288,6 +288,14 @@ func (impl RepoManagerImpl) backupGitMaterialBeforeUpdate(existingMaterial *sql. func (impl RepoManagerImpl) UpdateRepo(gitCtx git.GitContext, material *sql.GitMaterial) (*sql.GitMaterial, error) { updateInitiatedTime := time.Now() + + repoLock := impl.locker.LeaseLocker(material.Id) + repoLock.Mutex.Lock() + defer func() { + repoLock.Mutex.Unlock() + impl.locker.ReturnLocker(material.Id) + }() + existingMaterial, err := impl.materialRepository.FindById(material.Id) if err != nil { impl.logger.Errorw("error in fetching material", "material", material, "timeTaken", time.Since(updateInitiatedTime), "err", err) @@ -314,13 +322,6 @@ func (impl RepoManagerImpl) UpdateRepo(gitCtx git.GitContext, material *sql.GitM return nil, err } - repoLock := impl.locker.LeaseLocker(material.Id) - repoLock.Mutex.Lock() - defer func() { - repoLock.Mutex.Unlock() - impl.locker.ReturnLocker(material.Id) - }() - err = impl.repositoryManager.Clean(existingMaterial.CheckoutLocation) if err != nil { impl.logger.Errorw("error in refreshing material", "dir", existingMaterial.CheckoutLocation, "timeTaken", time.Since(updateInitiatedTime), "err", err)