Do not fail the runner/worker if it fails to write mutants. This is to be consistent with the previous behavior. Otherwise when the engine request to mutant a large seed the mutation can keep failing due to shmem being too small, while previously it could do its best-effort to fill as much mutants as possible. PiperOrigin-RevId: 962853062
diff --git a/centipede/engine_worker.cc b/centipede/engine_worker.cc index a1febf0..3c95801 100644 --- a/centipede/engine_worker.cc +++ b/centipede/engine_worker.cc
@@ -639,12 +639,10 @@ mutant_bytes.clear(); adapter.SerializeInputContent(adapter.ctx, emitted_inputs[0], &mutant_bytes_sink); - WORKER_CHECK_FOR_ERROR(); - WorkerCheck(MutationResult::WriteMutant(MutantRef{mutant_bytes, origin}, - *outputs_blobseq), - "failed to write mutant"); adapter.FreeInput(adapter.ctx, emitted_inputs[0]); WORKER_CHECK_FOR_ERROR(); + (void)MutationResult::WriteMutant(MutantRef{mutant_bytes, origin}, + *outputs_blobseq); } for (auto input : origin_inputs) {
diff --git a/centipede/runner.cc b/centipede/runner.cc index e734e6d..40e4f39 100644 --- a/centipede/runner.cc +++ b/centipede/runner.cc
@@ -704,13 +704,9 @@ } if (!callbacks.HasCustomMutator()) return EXIT_SUCCESS; - { - bool succ = true; - MutateInputs(callbacks, input_refs, num_mutants, [&](MutantRef mutant) { - succ = succ && MutationResult::WriteMutant(mutant, outputs_blobseq); - }); - if (!succ) return EXIT_FAILURE; - } + MutateInputs(callbacks, input_refs, num_mutants, [&](MutantRef mutant) { + (void)MutationResult::WriteMutant(mutant, outputs_blobseq); + }); return EXIT_SUCCESS; }