From 28ac2fce6132e7342f7771f0b88f036030706935 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Magiera?= Date: Sat, 29 Aug 2020 06:41:19 +0200 Subject: [PATCH] sched: Fix panic in workerCompactWindows --- extern/sector-storage/sched.go | 2 +- extern/sector-storage/sched_test.go | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/extern/sector-storage/sched.go b/extern/sector-storage/sched.go index 16e51f9a6..56d78bfae 100644 --- a/extern/sector-storage/sched.go +++ b/extern/sector-storage/sched.go @@ -641,7 +641,7 @@ func (sh *scheduler) workerCompactWindows(worker *workerHandle, wid WorkerID) in if len(moved) > 0 { newTodo := make([]*workerRequest, 0, len(window.todo)-len(moved)) for i, t := range window.todo { - if moved[0] == i { + if len(moved) > 0 && moved[0] == i { moved = moved[1:] continue } diff --git a/extern/sector-storage/sched_test.go b/extern/sector-storage/sched_test.go index 4aa1dc49b..08fdbe38f 100644 --- a/extern/sector-storage/sched_test.go +++ b/extern/sector-storage/sched_test.go @@ -637,4 +637,9 @@ func TestWindowCompact(t *testing.T) { [][]sealtasks.TaskType{{sealtasks.TTPreCommit1, sealtasks.TTPreCommit1}, {sealtasks.TTPreCommit1, sealtasks.TTAddPiece}}, [][]sealtasks.TaskType{{sealtasks.TTPreCommit1, sealtasks.TTPreCommit1, sealtasks.TTAddPiece}, {sealtasks.TTPreCommit1}}), ) + + t.Run("2pc1-pc1appc2", test( + [][]sealtasks.TaskType{{sealtasks.TTPreCommit1, sealtasks.TTPreCommit1}, {sealtasks.TTPreCommit1, sealtasks.TTAddPiece, sealtasks.TTPreCommit2}}, + [][]sealtasks.TaskType{{sealtasks.TTPreCommit1, sealtasks.TTPreCommit1, sealtasks.TTAddPiece}, {sealtasks.TTPreCommit1, sealtasks.TTPreCommit2}}), + ) }