diff options
| author | Aleksandr Nogikh <nogikh@google.com> | 2025-04-09 14:30:54 +0200 |
|---|---|---|
| committer | Aleksandr Nogikh <nogikh@google.com> | 2025-04-11 13:02:25 +0000 |
| commit | 0bd6db418098e2d98a2edf948b41410d3d9f9e70 (patch) | |
| tree | 65a87774f63eadb75036b75c5294db051943de42 /syz-cluster/pkg/service | |
| parent | 27ba3dade815757a586b8f5a994ff675786ca212 (diff) | |
syz-cluster: share and display triage logs
For now, only share it for the skipped series.
Diffstat (limited to 'syz-cluster/pkg/service')
| -rw-r--r-- | syz-cluster/pkg/service/session.go | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/syz-cluster/pkg/service/session.go b/syz-cluster/pkg/service/session.go index 23f1a8c17..9ad0688fd 100644 --- a/syz-cluster/pkg/service/session.go +++ b/syz-cluster/pkg/service/session.go @@ -4,31 +4,45 @@ package service import ( + "bytes" "context" "errors" + "fmt" "time" "github.com/google/syzkaller/syz-cluster/pkg/api" "github.com/google/syzkaller/syz-cluster/pkg/app" + "github.com/google/syzkaller/syz-cluster/pkg/blob" "github.com/google/syzkaller/syz-cluster/pkg/db" ) type SessionService struct { sessionRepo *db.SessionRepository seriesRepo *db.SeriesRepository + blobStorage blob.Storage } func NewSessionService(env *app.AppEnvironment) *SessionService { return &SessionService{ sessionRepo: db.NewSessionRepository(env.Spanner), seriesRepo: db.NewSeriesRepository(env.Spanner), + blobStorage: env.BlobStorage, } } var ErrSessionNotFound = errors.New("session not found") func (s *SessionService) SkipSession(ctx context.Context, sessionID string, skip *api.SkipRequest) error { + var triageLogURI string + if len(skip.TriageLog) > 0 { + var err error + triageLogURI, err = s.blobStorage.Store(bytes.NewReader(skip.TriageLog)) + if err != nil { + return fmt.Errorf("failed to save the log: %w", err) + } + } err := s.sessionRepo.Update(ctx, sessionID, func(session *db.Session) error { + session.TriageLogURI = triageLogURI session.SetSkipReason(skip.Reason) return nil }) |
