Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit83c493e

Browse files
authored
1 parent06c9979 commit83c493e

File tree

4 files changed

+32
-19
lines changed

4 files changed

+32
-19
lines changed

‎coderd/database/dbgen/dbgen.go‎

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -220,16 +220,29 @@ func WorkspaceAgentScriptTimings(t testing.TB, db database.Store, script databas
220220
}
221221

222222
funcWorkspaceAgentScriptTiming(t testing.TB,db database.Store,orig database.WorkspaceAgentScriptTiming) database.WorkspaceAgentScriptTiming {
223-
timing,err:=db.InsertWorkspaceAgentScriptTimings(genCtx, database.InsertWorkspaceAgentScriptTimingsParams{
224-
StartedAt:takeFirst(orig.StartedAt,dbtime.Now()),
225-
EndedAt:takeFirst(orig.EndedAt,dbtime.Now()),
226-
Stage:takeFirst(orig.Stage,database.WorkspaceAgentScriptTimingStageStart),
227-
ScriptID:takeFirst(orig.ScriptID,uuid.New()),
228-
ExitCode:takeFirst(orig.ExitCode,0),
229-
Status:takeFirst(orig.Status,database.WorkspaceAgentScriptTimingStatusOk),
230-
})
231-
require.NoError(t,err,"insert workspace agent script")
232-
returntiming
223+
// retry a few times in case of a unique constraint violation
224+
fori:=0;i<10;i++ {
225+
timing,err:=db.InsertWorkspaceAgentScriptTimings(genCtx, database.InsertWorkspaceAgentScriptTimingsParams{
226+
StartedAt:takeFirst(orig.StartedAt,dbtime.Now()),
227+
EndedAt:takeFirst(orig.EndedAt,dbtime.Now()),
228+
Stage:takeFirst(orig.Stage,database.WorkspaceAgentScriptTimingStageStart),
229+
ScriptID:takeFirst(orig.ScriptID,uuid.New()),
230+
ExitCode:takeFirst(orig.ExitCode,0),
231+
Status:takeFirst(orig.Status,database.WorkspaceAgentScriptTimingStatusOk),
232+
})
233+
iferr==nil {
234+
returntiming
235+
}
236+
// Some tests run WorkspaceAgentScriptTiming in a loop and run into
237+
// a unique violation - 2 rows get the same started_at value.
238+
if (database.IsUniqueViolation(err,database.UniqueWorkspaceAgentScriptTimingsScriptIDStartedAtKey)&&orig.StartedAt== time.Time{}) {
239+
// Wait 1 millisecond so dbtime.Now() changes
240+
time.Sleep(time.Millisecond*1)
241+
continue
242+
}
243+
require.NoError(t,err,"insert workspace agent script")
244+
}
245+
panic("failed to insert workspace agent script timing")
233246
}
234247

235248
funcWorkspace(t testing.TB,db database.Store,orig database.WorkspaceTable) database.WorkspaceTable {

‎coderd/database/dbpurge/dbpurge_test.go‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ func TestPurge(t *testing.T) {
5454

5555
//nolint:paralleltest // It uses LockIDDBPurge.
5656
funcTestDeleteOldWorkspaceAgentStats(t*testing.T) {
57-
ctx,cancel:=context.WithTimeout(context.Background(),testutil.WaitShort)
57+
ctx,cancel:=context.WithTimeout(context.Background(),testutil.WaitLong)
5858
defercancel()
5959

6060
now:=dbtime.Now()

‎enterprise/tailnet/pgcoord_test.go‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -921,7 +921,7 @@ func TestPGCoordinatorPropogatedPeerContext(t *testing.T) {
921921
t.Skip("test only with postgres")
922922
}
923923

924-
ctx:=testutil.Context(t,testutil.WaitShort)
924+
ctx:=testutil.Context(t,testutil.WaitMedium)
925925
store,ps:=dbtestutil.NewDB(t)
926926
logger:=testutil.Logger(t)
927927

‎testutil/duration_windows.go‎

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,18 @@ import "time"
77
//
88
// Windows durations are adjusted for slow CI workers.
99
const (
10-
WaitShort=15*time.Second
11-
WaitMedium=20*time.Second
12-
WaitLong=35*time.Second
13-
WaitSuperLong=120*time.Second
10+
WaitShort=30*time.Second
11+
WaitMedium=40*time.Second
12+
WaitLong=70*time.Second
13+
WaitSuperLong=240*time.Second
1414
)
1515

1616
// Constants for delaying repeated operations, e.g. in
1717
// require.Eventually.
1818
//
1919
// Windows durations are adjusted for slow CI workers.
2020
const (
21-
IntervalFast=50*time.Millisecond
22-
IntervalMedium=500*time.Millisecond
23-
IntervalSlow=2*time.Second
21+
IntervalFast=100*time.Millisecond
22+
IntervalMedium=1000*time.Millisecond
23+
IntervalSlow=4*time.Second
2424
)

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp