aboutsummaryrefslogtreecommitdiffstats
path: root/syz-cluster/workflow
diff options
context:
space:
mode:
authorAleksandr Nogikh <nogikh@google.com>2025-04-09 14:14:10 +0200
committerAleksandr Nogikh <nogikh@google.com>2025-04-11 13:02:25 +0000
commit27ba3dade815757a586b8f5a994ff675786ca212 (patch)
tree1e6ad4457680317036bf27a694aab4e09d667501 /syz-cluster/workflow
parent12ba9c21547f0ea81d8ca844847dd4d25fdb1a83 (diff)
syz-cluster: share the series skip reason
The existing "no suitable commits found" reason is way too ambiguous. Make CommitSelector return the exact reason why it decides not to proceed with the particular patch series and display the reason on the web dashboard.
Diffstat (limited to 'syz-cluster/workflow')
-rw-r--r--syz-cluster/workflow/triage-step/main.go16
1 files changed, 10 insertions, 6 deletions
diff --git a/syz-cluster/workflow/triage-step/main.go b/syz-cluster/workflow/triage-step/main.go
index d284c24fd..14bae39f5 100644
--- a/syz-cluster/workflow/triage-step/main.go
+++ b/syz-cluster/workflow/triage-step/main.go
@@ -7,7 +7,9 @@ import (
"context"
"flag"
"fmt"
+ "os"
+ "github.com/google/syzkaller/pkg/debugtracer"
"github.com/google/syzkaller/pkg/osutil"
"github.com/google/syzkaller/syz-cluster/pkg/api"
"github.com/google/syzkaller/syz-cluster/pkg/app"
@@ -65,7 +67,7 @@ func getVerdict(ctx context.Context, client *api.Client, ops triage.TreeOps) (*a
if tree == nil {
return &api.TriageResult{
Skip: &api.SkipRequest{
- Reason: "no suitable kernel tree found",
+ Reason: "no suitable base kernel tree found",
},
}, nil
}
@@ -80,22 +82,24 @@ func getVerdict(ctx context.Context, client *api.Client, ops triage.TreeOps) (*a
// TODO: the workflow step must be retried.
return nil, fmt.Errorf("failed to query the last build: %w", err)
}
- selector := triage.NewCommitSelector(ops)
- commit, err := selector.Select(series, tree, lastBuild)
+ selector := triage.NewCommitSelector(ops, &debugtracer.GenericTracer{
+ TraceWriter: os.Stderr,
+ })
+ result, err := selector.Select(series, tree, lastBuild)
if err != nil {
// TODO: the workflow step must be retried.
return nil, fmt.Errorf("failed to run the commit selector: %w", err)
- } else if commit == "" {
+ } else if result.Commit == "" {
return &api.TriageResult{
Skip: &api.SkipRequest{
- Reason: "no suitable commits found",
+ Reason: "failed to find the base commit: " + result.Reason,
},
}, nil
}
base := api.BuildRequest{
TreeName: tree.Name,
ConfigName: tree.KernelConfig,
- CommitHash: commit,
+ CommitHash: result.Commit,
Arch: arch,
}
ret := &api.TriageResult{