aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/fuzzer/queue/queue.go
Commit message (Collapse)AuthorAgeFilesLines
* pkg/ipc: use flatrpc flagsDmitry Vyukov2024-05-171-3/+4
| | | | | | Flatrpc flags are passed in RPC execution requests, so to avoid conversions and duplicate set of flags use flatrpc flags in pkg/ipc directly.
* pkg/fuzzer/queue: simplify the priority queueAleksandr Nogikh2024-05-161-34/+36
| | | | | | We don't need the full priority queue functionality anymore. For our purposes it's enough to only enforce the order between the elements of different sub-queues.
* pkg/fuzzer/queue: refactor DynamicSourceAleksandr Nogikh2024-05-161-12/+11
| | | | | Use a simpler implementation. Don't assume the nested Source may be nil.
* pkg/fuzzer: manipulate ipc.ExecOptsAleksandr Nogikh2024-05-161-26/+26
| | | | There's no need in duplicating the signal, coverage, hints flags.
* pkg/fuzzer/queue: retry inputs from crashed VMsAleksandr Nogikh2024-05-161-0/+10
| | | | | | | | | | Mark some requests as Important. The Retry() layer will give them one more chance even if they were not executed due to a VM crash. For now, the only important requests are related to triage, candidates and pkg/vminfo tests. Add tests for retry.go.
* pkg/runtest: use queue.Request and queue.ResultAleksandr Nogikh2024-05-161-1/+5
| | | | There's no need to duplicate the execution mechanisms.
* pkg/vminfo: run programs interactivelyAleksandr Nogikh2024-05-161-0/+121
| | | | | | Use the same interfaces as the fuzzer. Now syz-manager no longer needs to treat machine check executions differently.
* pkg/fuzzer: introduce a request restarter layerAleksandr Nogikh2024-05-161-12/+37
| | | | | | Make Result statuses more elaborate. Instead of retrying inputs directly in rpc.go, extract this logic to a separate entity in pkg/fuzzer/queue.
* pkg/fuzzer: use queue layersAleksandr Nogikh2024-05-161-0/+270
Instead of relying on a fuzzer-internal priority queue, utilize stackable layers of request-generating steps. Move the functionality to a separate pkg/fuzzer/queue package. The pkg/fuzzer/queue package can be reused to add extra processing layers on top of the fuzzing and to combine machine checking and fuzzing execution pipelines.