From 4ecf61d06a754a3980c8a38513aded6f0db9ec2b Mon Sep 17 00:00:00 2001 From: Aleksandr Nogikh Date: Mon, 14 Oct 2024 12:24:32 +0200 Subject: pkg/manager: list broken seeds It's not very useful to just have the number of the broken seeds. Let's also show their names and the reasons why they are broken. --- pkg/manager/seeds.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'pkg/manager') diff --git a/pkg/manager/seeds.go b/pkg/manager/seeds.go index 5455684c2..80248f04c 100644 --- a/pkg/manager/seeds.go +++ b/pkg/manager/seeds.go @@ -42,8 +42,10 @@ func LoadSeeds(cfg *mgrconfig.Config, immutable bool) Seeds { type Input struct { IsSeed bool Key string + Path string Data []byte Prog *prog.Prog + Err error } procs := runtime.GOMAXPROCS(0) inputs := make(chan *Input, procs) @@ -54,7 +56,7 @@ func LoadSeeds(cfg *mgrconfig.Config, immutable bool) Seeds { go func() { defer wg.Done() for inp := range inputs { - inp.Prog, _ = LoadProg(cfg.Target, inp.Data) + inp.Prog, inp.Err = LoadProg(cfg.Target, inp.Data) outputs <- inp } }() @@ -70,7 +72,8 @@ func LoadSeeds(cfg *mgrconfig.Config, immutable bool) Seeds { Data: rec.Val, } } - seedDir := filepath.Join(cfg.Syzkaller, "sys", cfg.TargetOS, "test") + seedPath := filepath.Join("sys", cfg.TargetOS, "test") + seedDir := filepath.Join(cfg.Syzkaller, seedPath) if osutil.IsExist(seedDir) { seeds, err := os.ReadDir(seedDir) if err != nil { @@ -83,6 +86,7 @@ func LoadSeeds(cfg *mgrconfig.Config, immutable bool) Seeds { } inputs <- &Input{ IsSeed: true, + Path: filepath.Join(seedPath, seed.Name()), Data: data, } } @@ -96,6 +100,7 @@ func LoadSeeds(cfg *mgrconfig.Config, immutable bool) Seeds { if inp.Prog == nil { if inp.IsSeed { brokenSeeds++ + log.Errorf("seed %s is broken: %s", inp.Path, inp.Err) } else { brokenCorpus = append(brokenCorpus, inp.Key) } -- cgit mrf-deployment