From b9c7c31970e88d97e0d30554e778d35432d84d1d Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Fri, 22 Jun 2018 20:32:54 +0200 Subject: syz-fuzzer: prevent not output crashes during machine checking Machine checking can be very slow on some machines (qemu without kvm, KMEMLEAK linux, etc), so print periodic heartbeats for vm.MonitorExecution so that it does not decide that we are dead. --- syz-fuzzer/testing.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/syz-fuzzer/testing.go b/syz-fuzzer/testing.go index 5887c9bbc..f5f3158ab 100644 --- a/syz-fuzzer/testing.go +++ b/syz-fuzzer/testing.go @@ -41,6 +41,22 @@ func testImage(hostAddr string, args *checkArgs) { } func checkMachine(args *checkArgs) (*rpctype.CheckArgs, error) { + // Machine checking can be very slow on some machines (qemu without kvm, KMEMLEAK linux, etc), + // so print periodic heartbeats for vm.MonitorExecution so that it does not decide that we are dead. + done := make(chan bool) + defer close(done) + go func() { + ticker := time.NewTicker(3 * time.Second) + defer ticker.Stop() + for { + select { + case <-done: + return + case <-ticker.C: + fmt.Printf("executing program\n") + } + } + }() if err := checkRevisions(args); err != nil { return nil, err } -- cgit mrf-deployment