Skip to content

Commit fe84029

Browse files
committed
Fix
1 parent 142f2e2 commit fe84029

File tree

4 files changed

+28
-15
lines changed

4 files changed

+28
-15
lines changed

coderd/database/dbmem/dbmem.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1122,7 +1122,7 @@ func (q *FakeQuerier) DeleteOldProvisionerDaemons(_ context.Context) error {
11221122

11231123
var validDaemons []database.ProvisionerDaemon
11241124
for _, p := range q.provisionerDaemons {
1125-
if p.CreatedAt.Before(weekAgo) && p.UpdatedAt.Valid && p.UpdatedAt.Time.Before(weekAgo) {
1125+
if (p.CreatedAt.Before(weekAgo) && !p.UpdatedAt.Valid) || (p.UpdatedAt.Valid && p.UpdatedAt.Time.Before(weekAgo)) {
11261126
continue
11271127
}
11281128
validDaemons = append(validDaemons, p)

coderd/database/dbpurge/dbpurge_test.go

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -44,27 +44,34 @@ func TestDeleteOldProvisionerDaemons(t *testing.T) {
4444

4545
// given
4646
_, err := db.InsertProvisionerDaemon(ctx, database.InsertProvisionerDaemonParams{
47-
Name: "external-0",
48-
CreatedAt: now.Add(-7 * 24 * time.Hour),
49-
UpdatedAt: sql.NullTime{Valid: true, Time: now.Add(-7 * 24 * time.Hour).Add(time.Minute)},
47+
// Provisioner daemon created 14 days ago, and checked in just before 7 days deadline.
48+
Name: "external-0",
49+
Provisioners: []database.ProvisionerType{"echo"},
50+
CreatedAt: now.Add(-14 * 24 * time.Hour),
51+
UpdatedAt: sql.NullTime{Valid: true, Time: now.Add(-7 * 24 * time.Hour).Add(time.Minute)},
5052
})
5153
require.NoError(t, err)
5254
_, err = db.InsertProvisionerDaemon(ctx, database.InsertProvisionerDaemonParams{
53-
Name: "external-1",
54-
CreatedAt: now.Add(-8 * 24 * time.Hour),
55-
UpdatedAt: sql.NullTime{Valid: true, Time: now.Add(-8 * 24 * time.Hour)},
55+
// Provisioner daemon created 8 days ago, and checked in last time an hour after creation.
56+
Name: "external-1",
57+
Provisioners: []database.ProvisionerType{"echo"},
58+
CreatedAt: now.Add(-8 * 24 * time.Hour),
59+
UpdatedAt: sql.NullTime{Valid: true, Time: now.Add(-8 * 24 * time.Hour).Add(time.Hour)},
5660
})
5761
require.NoError(t, err)
5862
_, err = db.InsertProvisionerDaemon(ctx, database.InsertProvisionerDaemonParams{
59-
Name: "external-2",
60-
CreatedAt: now.Add(-9 * 24 * time.Hour),
61-
UpdatedAt: sql.NullTime{Valid: true, Time: now.Add(-9 * 24 * time.Hour)},
63+
// Provisioner daemon created 9 days ago, and never checked in.
64+
Name: "external-2",
65+
Provisioners: []database.ProvisionerType{"echo"},
66+
CreatedAt: now.Add(-9 * 24 * time.Hour),
6267
})
6368
require.NoError(t, err)
6469
_, err = db.InsertProvisionerDaemon(ctx, database.InsertProvisionerDaemonParams{
65-
Name: "external-3",
66-
CreatedAt: now.Add(-6 * 24 * time.Hour),
67-
UpdatedAt: sql.NullTime{Valid: true, Time: now.Add(-6 * 24 * time.Hour)},
70+
// Provisioner daemon created 6 days ago, and never checked in.
71+
Name: "external-3",
72+
Provisioners: []database.ProvisionerType{"echo"},
73+
CreatedAt: now.Add(-6 * 24 * time.Hour),
74+
UpdatedAt: sql.NullTime{Valid: true, Time: now.Add(-6 * 24 * time.Hour)},
6875
})
6976
require.NoError(t, err)
7077

coderd/database/queries.sql.go

Lines changed: 4 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/queries/provisionerdaemons.sql

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,7 @@ VALUES
2222
-- and have not connected to coderd since a week.
2323
-- A provisioner daemon with "zeroed" updated_at column indicates possible
2424
-- connectivity issues (no provisioner daemon activity since registration).
25-
DELETE FROM provisioner_daemons WHERE created_at < (NOW() - INTERVAL '7 days') AND updated_at < (NOW() - INTERVAL '7 days');
25+
DELETE FROM provisioner_daemons WHERE (
26+
(created_at < (NOW() - INTERVAL '7 days') AND updated_at IS NULL) OR
27+
(updated_at IS NOT NULL AND updated_at < (NOW() - INTERVAL '7 days'))
28+
);

0 commit comments

Comments
 (0)