Skip to content

Commit 3234e15

Browse files
authored
Catch fuzzbench measurer worker exception. (#2107)
The measurer worker is launched using multiprocessing.Pool's apply_async. If there is any uncaught exception, the worker thread will die and stop to do any more work. Probably related to #1108 https://github.com/google/fuzzbench/blob/fe8c15e1edbf796121cd3558305a1e7473a8c749/experiment/measurer/measure_manager.py#L813
1 parent 06bfe9d commit 3234e15

1 file changed

Lines changed: 7 additions & 3 deletions

File tree

experiment/measurer/measure_worker.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,13 @@ def measure_worker_loop(self):
5757
'Measurer worker: Got request %s %s %d %d from request queue',
5858
request.fuzzer, request.benchmark, request.trial_id,
5959
request.cycle)
60-
measured_snapshot = measure_manager.measure_snapshot_coverage(
61-
request.fuzzer, request.benchmark, request.trial_id,
62-
request.cycle, self.region_coverage)
60+
measured_snapshot = None
61+
try:
62+
measured_snapshot = measure_manager.measure_snapshot_coverage(
63+
request.fuzzer, request.benchmark, request.trial_id,
64+
request.cycle, self.region_coverage)
65+
except:
66+
import traceback; traceback.print_exc()
6367
self.put_result_in_response_queue(measured_snapshot, request)
6468
time.sleep(MEASUREMENT_TIMEOUT)
6569

0 commit comments

Comments
 (0)