From adb9a3cd3732374cec4a7914bb6db944c1b16ef2 Mon Sep 17 00:00:00 2001 From: Aleksandr Nogikh Date: Thu, 11 May 2023 16:20:52 +0200 Subject: dashboard: adjust bug origin tree testing periods If the tested tree is build/boot/test broken, repeat the job in 2 weeks. If we are waiting for a bug to get fix, repeat every 45 days. --- dashboard/app/tree.go | 13 +++++++------ dashboard/app/tree_test.go | 28 ++++++++++++++-------------- 2 files changed, 21 insertions(+), 20 deletions(-) diff --git a/dashboard/app/tree.go b/dashboard/app/tree.go index 263c4651b..50b35186a 100644 --- a/dashboard/app/tree.go +++ b/dashboard/app/tree.go @@ -409,14 +409,16 @@ func (ctx *bugTreeContext) doRunRepro(repo KernelRepo, result expectedResult, ru } if bugTreeTest.Error != "" { - result := ctx.ensureRepeatPeriod(bugTreeTest.Error) + const errorRetryTime = 24 * time.Hour * 14 + result := ctx.ensureRepeatPeriod(bugTreeTest.Error, errorRetryTime) if _, ok := result.(pollResultSkip); !ok { return result } bugTreeTest.Error = "" } if bugTreeTest.Last != "" { - result := ctx.ensureRepeatPeriod(bugTreeTest.Last) + const fixRetryTime = 24 * time.Hour * 45 + result := ctx.ensureRepeatPeriod(bugTreeTest.Last, fixRetryTime) if _, ok := result.(pollResultSkip); !ok { return result } @@ -444,15 +446,14 @@ func (ctx *bugTreeContext) doRunRepro(repo KernelRepo, result expectedResult, ru return pollResultPending{} } -func (ctx *bugTreeContext) ensureRepeatPeriod(jobKey string) pollTreeJobResult { - const retryTime = 24 * time.Hour * 30 +func (ctx *bugTreeContext) ensureRepeatPeriod(jobKey string, period time.Duration) pollTreeJobResult { job, err := fetchJob(ctx.c, jobKey) if err != nil { return pollResultError(err) } timePassed := timeNow(ctx.c).Sub(job.Finished) - if timePassed < retryTime { - return pollResultWait(job.Finished.Add(retryTime)) + if timePassed < period { + return pollResultWait(job.Finished.Add(period)) } return pollResultSkip{} } diff --git a/dashboard/app/tree_test.go b/dashboard/app/tree_test.go index 5c4af14ec..9ebcf64dd 100644 --- a/dashboard/app/tree_test.go +++ b/dashboard/app/tree_test.go @@ -93,25 +93,25 @@ func TestTreeOriginErrors(t *testing.T) { mergeAlias: `downstream`, results: []treeTestEntryPeriod{ {fromDay: 0, result: treeTestError}, - {fromDay: 31, result: treeTestCrash}, + {fromDay: 16, result: treeTestCrash}, }, }, { alias: `upstream`, results: []treeTestEntryPeriod{ {fromDay: 0, result: treeTestError}, - {fromDay: 60, result: treeTestCrash}, + {fromDay: 31, result: treeTestCrash}, }, }, } - ctx.jobTestDays = []int{1, 32, 63} + ctx.jobTestDays = []int{1, 16, 31} ctx.moveToDay(1) ctx.ensureLabels() // Not enough information yet. - // The original crash is reproducible again. - ctx.moveToDay(32) + // Lts got unbroken. + ctx.moveToDay(16) ctx.ensureLabels(`origin:lts`) // We don't know any better so far. - // Upstream is buildable again. - ctx.moveToDay(63) + // Upstream got unbroken. + ctx.moveToDay(31) ctx.ensureLabels(`origin:upstream`) c.expectEQ(ctx.entries[0].jobsDone, 0) c.expectEQ(ctx.entries[1].jobsDone, 2) @@ -424,7 +424,7 @@ func TestMissingLtsBackport(t *testing.T) { alias: `lts`, results: []treeTestEntryPeriod{ {fromDay: 0, result: treeTestCrash}, - {fromDay: 31, result: treeTestOK}, + {fromDay: 46, result: treeTestOK}, }, }, { @@ -434,8 +434,8 @@ func TestMissingLtsBackport(t *testing.T) { }, }, } - ctx.jobTestDays = []int{0, 35} - ctx.moveToDay(35) + ctx.jobTestDays = []int{0, 46} + ctx.moveToDay(46) ctx.ensureLabels(`missing-backport`) c.expectEQ(ctx.entries[0].jobsDone, 1) c.expectEQ(ctx.entries[1].jobsDone, 1) @@ -470,8 +470,8 @@ func TestMissingUpstreamBackport(t *testing.T) { }, }, } - ctx.jobTestDays = []int{0, 35} - ctx.moveToDay(35) + ctx.jobTestDays = []int{0, 46} + ctx.moveToDay(46) ctx.ensureLabels(`missing-backport`) c.expectEQ(ctx.entries[0].jobsDone, 1) c.expectEQ(ctx.entries[1].jobsDone, 2) @@ -511,8 +511,8 @@ func TestNotMissingBackport(t *testing.T) { }, }, } - ctx.jobTestDays = []int{0, 35} - ctx.moveToDay(35) + ctx.jobTestDays = []int{0, 46} + ctx.moveToDay(46) ctx.ensureLabels() c.expectEQ(ctx.entries[0].jobsDone, 0) c.expectEQ(ctx.entries[1].jobsDone, 1) -- cgit mrf-deployment