syz-fuzzer: don't include disabled syscall name in panics

These checks still fire episodically [on gvisor instance only?].
I've done several attempts to debug this/extend checks.
But so far I have no glue and we are still seeing them.
They are rare enough to be directly debuggable and to be
something trivial. This may be some memory corruption
(kernel or our race), or some very episodic condition.
They are rare enough to be a problem, so don't include
syscall name so that they all go into a single bug bucket.
This commit is contained in:
Dmitry Vyukov 2020-06-16 15:43:22 +02:00
parent 3674152277
commit 559fbe2dbe
2 changed files with 6 additions and 3 deletions

View File

@ -246,7 +246,8 @@ func (target *Target) BuildChoiceTable(corpus []*Prog, enabled map[*Syscall]bool
for _, p := range corpus {
for _, call := range p.Calls {
if !enabled[call.Meta] {
panic(fmt.Sprintf("corpus contains disabled syscall %v", call.Meta.Name))
fmt.Printf("corpus contains disabled syscall %v", call.Meta.Name)
panic("disabled syscall")
}
}
}
@ -277,7 +278,8 @@ func (ct *ChoiceTable) choose(r *rand.Rand, bias int) int {
bias = ct.calls[r.Intn(len(ct.calls))].ID
}
if !ct.Enabled(bias) {
panic("bias to disabled syscall")
fmt.Printf("bias to disabled syscall %v", ct.target.Syscalls[bias].Name)
panic("disabled syscall")
}
run := ct.runs[bias]
x := r.Intn(run[len(run)-1]) + 1

View File

@ -279,7 +279,8 @@ func (proc *Proc) executeRaw(opts *ipc.ExecOpts, p *prog.Prog, stat Stat) *ipc.P
}
for _, call := range p.Calls {
if !proc.fuzzer.choiceTable.Enabled(call.Meta.ID) {
panic(fmt.Sprintf("executing disabled syscall %v", call.Meta.Name))
fmt.Printf("executing disabled syscall %v", call.Meta.Name)
panic("disabled syscall")
}
}