aboutsummaryrefslogtreecommitdiffstats
path: root/syz-cluster/pkg/service
diff options
context:
space:
mode:
authorAleksandr Nogikh <nogikh@google.com>2025-04-09 14:30:54 +0200
committerAleksandr Nogikh <nogikh@google.com>2025-04-11 13:02:25 +0000
commit0bd6db418098e2d98a2edf948b41410d3d9f9e70 (patch)
tree65a87774f63eadb75036b75c5294db051943de42 /syz-cluster/pkg/service
parent27ba3dade815757a586b8f5a994ff675786ca212 (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.go14
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
})