Merge pull request #9495 from filecoin-project/fix/postsched-ping-flood

fix: post worker sched: Don't check worker session in a busy loop
This commit is contained in:
Aayush Rajasekaran 2022-10-14 11:37:23 -04:00 committed by GitHub
commit 8a2f8c34cc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -169,6 +169,12 @@ func (ps *poStScheduler) watch(wid storiface.WorkerID, worker *WorkerHandle) {
}()
for {
select {
case <-heartbeatTimer.C:
case <-worker.closingMgr:
return
}
sctx, scancel := context.WithTimeout(ctx, paths.HeartbeatInterval/2)
curSes, err := worker.workerRpc.Session(sctx)
scancel()
@ -177,12 +183,7 @@ func (ps *poStScheduler) watch(wid storiface.WorkerID, worker *WorkerHandle) {
log.Warnw("failed to check worker session", "error", err)
ps.disable(wid)
select {
case <-heartbeatTimer.C:
continue
case <-worker.closingMgr:
return
}
continue
}
if storiface.WorkerID(curSes) != wid {