Skip to content

Commit

Permalink
fix: for loop bug
Browse files Browse the repository at this point in the history
  • Loading branch information
illyaks committed May 31, 2024
1 parent ca5d277 commit be533bb
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 17 deletions.
9 changes: 7 additions & 2 deletions pkg/controller/controllers/jobcontroller.go
Original file line number Diff line number Diff line change
Expand Up @@ -112,8 +112,13 @@ func (s *JobController) PodHandler(msg []byte) {
byteArr, _ := json.Marshal(job)
httputil.Put(URL, byteArr)
s.CallFunction(job)
s.WaitingJob = append(s.WaitingJob[:index], s.WaitingJob[index+1:]...)
index--
if index == len(s.WaitingJob)-1 {
s.WaitingJob = s.WaitingJob[:index]
index--
} else {
s.WaitingJob = append(s.WaitingJob[:index], s.WaitingJob[index+1:]...)
index--
}
}
}
}
Expand Down
15 changes: 12 additions & 3 deletions pkg/controller/controllers/serverlesscontroller.go
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,7 @@ func (this *ServerlessController) clearExpirePod() {
<-time.After(CheckInterval)
for functionName, freePods := range this.functionFreePods {
for index := 0; index < len(freePods); index++ {
log.Info("freepod: %d, array length: %d", index, len(freePods))
freePod := freePods[index]
if freePod.freeTime >= MaxFreeTime {
URL := config.GetUrlPrefix() + config.PodURL
Expand All @@ -216,9 +217,17 @@ func (this *ServerlessController) clearExpirePod() {
log.Error("delete pod err %v", err)
return
}
this.functionFreePods[functionName] = append(this.functionFreePods[functionName][:index], this.functionFreePods[functionName][index+1:]...)
index--
continue
if index == len(freePods)-1 {
log.Info("delete")
this.functionFreePods[functionName] = this.functionFreePods[functionName][:index]
break
} else {
log.Info("detele")
this.functionFreePods[functionName] = append(this.functionFreePods[functionName][:index], this.functionFreePods[functionName][index+1:]...)
index--
continue
}

}
this.functionFreePods[functionName][index].freeTime += CheckInterval
}
Expand Down
24 changes: 12 additions & 12 deletions pkg/kubelet/subscriber/subscriber.go
Original file line number Diff line number Diff line change
Expand Up @@ -75,16 +75,16 @@ func (k *KubeletSubscriber) PodHandler(msg []byte) {
}
switch podMsg.Opt {
case msg_type.Add:
//if podMsg.NewPod.Spec.NodeName != config.Nodename {
// break
//}
if podMsg.NewPod.Spec.NodeName != config.Nodename {
break
}
log.Info("create pod: %v", podMsg.NewPod)
pod.CreatePod(&podMsg.NewPod)
break
case msg_type.Delete:
//if podMsg.OldPod.Spec.NodeName != config.Nodename {
// break
//}
if podMsg.OldPod.Spec.NodeName != config.Nodename {
break
}
log.Info("delete pod: %v", podMsg.OldPod)
pod.DeletePod(&podMsg.OldPod)
break
Expand All @@ -93,12 +93,12 @@ func (k *KubeletSubscriber) PodHandler(msg []byte) {
NewSpec, _ := json.Marshal(podMsg.NewPod.Spec)
if string(OldSpec) != string(NewSpec) {
log.Info("update pod: %v", podMsg.NewPod)
//if podMsg.OldPod.Spec.NodeName == config.Nodename {
pod.DeletePod(&podMsg.OldPod)
//}
//if podMsg.NewPod.Spec.NodeName == config.Nodename {
pod.CreatePod(&podMsg.NewPod)
//}
if podMsg.OldPod.Spec.NodeName == config.Nodename {
pod.DeletePod(&podMsg.OldPod)
}
if podMsg.NewPod.Spec.NodeName == config.Nodename {
pod.CreatePod(&podMsg.NewPod)
}
}
break
}
Expand Down

0 comments on commit be533bb

Please sign in to comment.