From 137fdde817df60cccfeb9a40237533e48bc143ec Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Mon, 1 Jul 2024 14:26:06 +0200 Subject: executor: restart procs more deterministically Currently we force restart in rpcserver, but this has 2 problems: 1. It does not know the proc where the requets will land. 2. It does not take into account if the proc has already restarted recently for other reasons. Restart procs in executor only if they haven't restarted recenlty. Also make it deterministic. Given all other randomess we have, there does not seem to be a reason to use randomized restarts and restart after fewer/more runs. Also restart only after corpus triage. Corpus triage is slow already and there does not seem to be enough benefit to restart during corpus triage. Also restart at most 1 proc at a time, since there are lots of serial work in the kernel. --- syz-manager/manager.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'syz-manager') diff --git a/syz-manager/manager.go b/syz-manager/manager.go index 15d76dd4e..fe5e8f8f1 100644 --- a/syz-manager/manager.go +++ b/syz-manager/manager.go @@ -1502,7 +1502,7 @@ func (mgr *Manager) fuzzerLoop(fuzzer *fuzzer.Fuzzer) { } mgr.mu.Lock() if mgr.phase == phaseLoadedCorpus { - if !mgr.cfg.Snapshot && mgr.enabledFeatures&flatrpc.FeatureLeak != 0 { + if !mgr.cfg.Snapshot { mgr.serv.TriagedCorpus() } if mgr.cfg.HubClient != "" { -- cgit mrf-deployment