From f44873e33df5bb834265aeced37ef199ce0717c7 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Mon, 15 Apr 2024 11:15:51 +0200 Subject: syz-fuzzer: don't sleep after transient executor errors There is non-0 rate of transient executor errors. Currently we do full GC, free OS memory and sleep for a second after then. This was more meaningful when the fuzzer was in the VM as the fuzzer process consumed lots of memory. Now it consumes only ~20MB, any OOMs are likely not due to the fuzzer process. So instead sleep briefly and only after several retries (I would assume most errors are fixed after 1 retry). --- tools/syz-execprog/execprog.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'tools') diff --git a/tools/syz-execprog/execprog.go b/tools/syz-execprog/execprog.go index b1c355a1b..d2d194da2 100644 --- a/tools/syz-execprog/execprog.go +++ b/tools/syz-execprog/execprog.go @@ -185,7 +185,9 @@ func (ctx *Context) execute(pid int, env *ipc.Env, p *prog.Prog, progIndex int) } // Don't print err/output in this case as it may contain "SYZFAIL" and we want to fail yet. log.Logf(1, "executor failed, retrying") - time.Sleep(time.Second) + if try > 3 { + time.Sleep(100 * time.Millisecond) + } continue } if ctx.config.Flags&ipc.FlagDebug != 0 || err != nil { -- cgit mrf-deployment