diff options
| author | Sabyrzhan Tasbolatov <snovitoll@gmail.com> | 2024-08-20 12:42:25 +0500 |
|---|---|---|
| committer | Aleksandr Nogikh <nogikh@google.com> | 2024-08-21 11:45:23 +0000 |
| commit | b840654d3ada1d4c3ade855affaa8b53cdd92346 (patch) | |
| tree | eac6c27a98b8b8dd4724a0d36507db4edeff8167 /executor/_include/flatbuffers/flexbuffers.h | |
| parent | d504e3fd900ecc041a690a1389982c7e9c1560fd (diff) | |
syz-manager: sync saveRepro() and needLocalRepro()
There is a race condition of saving and accessing "repro.prog" file in
processFuzzingResults() goroutine.
needRepro() which is called from reproMgr.Loop() or upon <-externalReproQueue,
or at the end of saveCrash() can be called before saveRepro().
Removed reproMgr.Done channel and moved to post-processing of
*ReproResult to runRepro(). This should guarantee the order of RW
operations on "repro.prog" file.
$ stress ./syz-manager.test -test.run=TestReproRWRace
5s: 16 runs so far, 0 failures, 8 active
10s: 40 runs so far, 0 failures, 8 active
15s: 64 runs so far, 0 failures, 8 active
20s: 80 runs so far, 0 failures, 8 active
25s: 96 runs so far, 0 failures, 8 active
30s: 112 runs so far, 0 failures, 8 active
35s: 136 runs so far, 0 failures, 8 active
40s: 152 runs so far, 0 failures, 8 active
45s: 168 runs so far, 0 failures, 8 active
50s: 184 runs so far, 0 failures, 8 active
55s: 200 runs so far, 0 failures, 8 active
1m0s: 216 runs so far, 0 failures, 8 active
Fixes: https://github.com/google/syzkaller/issues/5157
Diffstat (limited to 'executor/_include/flatbuffers/flexbuffers.h')
0 files changed, 0 insertions, 0 deletions
