Skip to content

Commit

Permalink
statistics: fix panic when move analyze jobs to history (#10286)
Browse files Browse the repository at this point in the history
  • Loading branch information
alivxxx authored Apr 28, 2019
1 parent 5f03462 commit 9bf2253
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 1 deletion.
2 changes: 1 addition & 1 deletion statistics/analyze_jobs.go
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ func MoveToHistory(job *AnalyzeJob) {
analyzeStatus.Lock()
delete(analyzeStatus.jobs, job)
analyzeStatus.history = append(analyzeStatus.history, job)
numJobs := len(analyzeStatus.jobs)
numJobs := len(analyzeStatus.history)
if numJobs > numMaxHistoryJobs {
analyzeStatus.history = analyzeStatus.history[numJobs-numMaxHistoryJobs:]
}
Expand Down
34 changes: 34 additions & 0 deletions statistics/analyze_jobs_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
// Copyright 2019 PingCAP, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// See the License for the specific language governing permissions and
// limitations under the License.

package statistics

import (
. "github.com/pingcap/check"
)

func (s *testStatisticsSuite) TestMoveToHistory(c *C) {
numJobs := numMaxHistoryJobs*2 + 1
jobs := make([]*AnalyzeJob, 0, numJobs)
for i := 0; i < numJobs; i++ {
job := &AnalyzeJob{}
AddNewAnalyzeJob(job)
jobs = append(jobs, job)
}
MoveToHistory(jobs[0])
c.Assert(len(GetAllAnalyzeJobs()), Equals, numJobs)
for i := 1; i < numJobs; i++ {
MoveToHistory(jobs[i])
}
c.Assert(len(GetAllAnalyzeJobs()), Equals, numMaxHistoryJobs)
}

0 comments on commit 9bf2253

Please sign in to comment.