versatica / mediasoup

Cutting Edge WebRTC Video Conferencing
https://mediasoup.org
ISC License
6.18k stars 1.12k forks source link

CI: Really run fuzzer for 5 minutes #1338

Closed ibc closed 7 months ago

ibc commented 7 months ago

Run invoke fuzzer-run-all and wait for 5 minutes. Then check if it was still running. If not it means that it existed due to some (fuzzer) error so CI would fail.

NOTE: This was not needed finally but just in case, the fuzzer binary exists with status 77 if a fuzzer issue happened and with status 72 (internally documented) if interrupted via SIGINT. Docs: https://llvm.org/docs/LibFuzzer.html

Bonus Track: Fix #1334. Bonus Track: Fix #1335.

ibc commented 7 months ago

NOTE: I'm doing improvements.

ibc commented 7 months ago

Funny thing is that this PR is blocked by https://github.com/versatica/mediasoup/issues/1335 :(

ibc commented 7 months ago

The run-fuzzer.sh script is much better now and it doesn't wait given "duration" before it checks if fuzzer keeps running or not. It monitor it every minute.

What would you think could be a good duration for this CI? 2 minutes is obviously very little.

jmillan commented 7 months ago

What would you think could be a good duration for this CI? 2 minutes is obviously very little.

I think 2 minutes would detect most of the issues indeed.

ibc commented 7 months ago

Really? I thought 2 minutes is too little...

ibc commented 7 months ago

Let me please increase it to 5 minutes.

jmillan commented 7 months ago

@ibc, in order to run the fuzzer this must be run:

MESON_ARGS="-Dms_disable_liburing=true -Db_sanitize=address" make fuzzer make fuzzer-run-all

The b_sanitize option makes the job adding the required CPP and link args accordingly.

ibc commented 7 months ago

I've read the comments in meson PR. So those args should be added in fuzzer_run_all task in worker/tasks.py right?

ibc commented 7 months ago

Working fine. Merging.