diff --git a/.github/workflows/fuzzing.yml b/.github/workflows/fuzzing.yml index 68e3c8cbe5..f13f17673c 100644 --- a/.github/workflows/fuzzing.yml +++ b/.github/workflows/fuzzing.yml @@ -103,4 +103,10 @@ jobs: at_index=$(((10#$(date -u +%U)) % ${#fuzzing_scripts[@]})) selected_script="${fuzzing_scripts[$at_index]}" echo "Selected script: $selected_script" - timeout --preserve-status --signal=SIGINT 60m python $selected_script \ No newline at end of file + # Disable the default Github runner fail-fast behaviour for better timeout handling + set +e + timeout --signal=SIGINT 60m python $selected_script + # "timeout" returns 124 when the command times out. + # We treat this as a success (nothing found during the allotted time) and pass other exit codes through. + fuzz_exitcode=$? + [ $fuzz_exitcode -eq 124 ] && exit 0 || exit $fuzz_exitcode