Skip to content

Commit d400ce5

Browse files
committed
[Fix] šŸ› Wrong Pause Status DockerControler make GPU Scheduler StatusMap Error mayooot#11
1 parent 96f649e commit d400ce5

File tree

2 files changed

+22
-3
lines changed

2 files changed

+22
-3
lines changed

ā€Žinternal/routers/replicaset.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -342,8 +342,8 @@ func (rh *ReplicaSetHandler) Pause(c *gin.Context) {
342342
return
343343
}
344344

345-
if err := cs.StopContainer(name, false, false, false, true); err != nil {
346-
log.Errorf("services.StopContainer failed, original error: %T %v", errors.Cause(err), err)
345+
if err := cs.PauseContainer(name); err != nil {
346+
log.Errorf("services.PauseContainer failed, original error: %T %v", errors.Cause(err), err)
347347
log.Errorf("stack trace: \n%+v\n", err)
348348
ResponseError(c, CodeContainerShutDownFailed)
349349
return

ā€Žinternal/services/replicaset.go

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -599,6 +599,25 @@ func (rs *ReplicaSetService) StopContainer(name string, restoreGpu, restoreCpu,
599599
return nil
600600
}
601601

602+
func (rs *ReplicaSetService) PauseContainer(name string) error {
603+
var err error
604+
605+
version, ok := vmap.ContainerVersionMap.Get(name)
606+
if !ok {
607+
return errors.Errorf("container: %s version: %d not found in ContainerVersionMap", name, version)
608+
}
609+
name = fmt.Sprintf("%s-%d", name, version)
610+
611+
ctx := context.Background()
612+
if err = docker.Cli.ContainerPause(ctx, name); err != nil {
613+
log.Errorf("services.PauseContainer, container: %s pause failed, err: %v", name, err)
614+
return errors.WithMessage(err, "docker.ContainerPause failed")
615+
}
616+
617+
log.Infof("services.PauseContainer, container: %s pause successfully", name)
618+
return nil
619+
}
620+
602621
func (rs *ReplicaSetService) DeleteContainerForUpdate(name string) error {
603622
// restore port resources
604623
ports, err := rs.containerPortBindings(name)
@@ -737,7 +756,7 @@ func (rs *ReplicaSetService) RestartContainer(name string) (id, newContainerName
737756

738757
// check whether the container is using cpu
739758
if len(cpus) != 0 {
740-
if running {
759+
if running || pause {
741760
schedulers.CpuScheduler.Restore(cpus)
742761
}
743762
// apply for cpu

0 commit comments

Comments
Ā (0)