From d51c35ebcaaadf15489b4adc62c951d5e6900a6a Mon Sep 17 00:00:00 2001 From: Aleksandr Nogikh Date: Thu, 19 Feb 2026 15:27:16 +0000 Subject: syz-cluster: remember creation time of findings It will help us diambiguate them later. --- syz-cluster/pkg/db/entities.go | 1 + syz-cluster/pkg/db/migrations/12_add_finding_created_at.down.sql | 1 + syz-cluster/pkg/db/migrations/12_add_finding_created_at.up.sql | 1 + syz-cluster/pkg/service/finding.go | 2 ++ 4 files changed, 5 insertions(+) create mode 100644 syz-cluster/pkg/db/migrations/12_add_finding_created_at.down.sql create mode 100644 syz-cluster/pkg/db/migrations/12_add_finding_created_at.up.sql diff --git a/syz-cluster/pkg/db/entities.go b/syz-cluster/pkg/db/entities.go index 0a0551c8e..cedb34188 100644 --- a/syz-cluster/pkg/db/entities.go +++ b/syz-cluster/pkg/db/entities.go @@ -167,6 +167,7 @@ type Finding struct { SyzReproOptsURI string `spanner:"SyzReproOptsURI"` CReproURI string `spanner:"CReproURI"` InvalidatedAt spanner.NullTime `spanner:"InvalidatedAt"` + CreatedAt spanner.NullTime `spanner:"CreatedAt"` } func (f *Finding) SetInvalidatedAt(t time.Time) { diff --git a/syz-cluster/pkg/db/migrations/12_add_finding_created_at.down.sql b/syz-cluster/pkg/db/migrations/12_add_finding_created_at.down.sql new file mode 100644 index 000000000..8e873cfd4 --- /dev/null +++ b/syz-cluster/pkg/db/migrations/12_add_finding_created_at.down.sql @@ -0,0 +1 @@ +ALTER TABLE Findings DROP COLUMN CreatedAt; diff --git a/syz-cluster/pkg/db/migrations/12_add_finding_created_at.up.sql b/syz-cluster/pkg/db/migrations/12_add_finding_created_at.up.sql new file mode 100644 index 000000000..fce4beca0 --- /dev/null +++ b/syz-cluster/pkg/db/migrations/12_add_finding_created_at.up.sql @@ -0,0 +1 @@ +ALTER TABLE Findings ADD COLUMN CreatedAt TIMESTAMP; diff --git a/syz-cluster/pkg/service/finding.go b/syz-cluster/pkg/service/finding.go index fa68fb993..bfa7d13f1 100644 --- a/syz-cluster/pkg/service/finding.go +++ b/syz-cluster/pkg/service/finding.go @@ -11,6 +11,7 @@ import ( "slices" "time" + "cloud.google.com/go/spanner" "github.com/google/syzkaller/syz-cluster/pkg/api" "github.com/google/syzkaller/syz-cluster/pkg/app" "github.com/google/syzkaller/syz-cluster/pkg/blob" @@ -59,6 +60,7 @@ func (s *FindingService) Save(ctx context.Context, req *api.RawFinding) error { SessionID: req.SessionID, TestName: req.TestName, Title: req.Title, + CreatedAt: spanner.NullTime{Time: time.Now(), Valid: true}, } // TODO: if it's not actually addded, these blobs will be orphaned. err := s.saveAssets(finding, req) -- cgit mrf-deployment