Skip to content

Commit 20a342f

Browse files
Handle new fuzz targets in split builds propelry.
Previously we tried to handle it by finding the fuzz targets in the list. But we still failed because it wasn't in the db. Save it to the db to solve this problem.
1 parent 4be8cbc commit 20a342f

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

src/clusterfuzz/_internal/bot/tasks/utasks/fuzz_task.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2007,18 +2007,26 @@ def _pick_fuzz_target():
20072007
return build_manager.pick_random_fuzz_target(target_weights)
20082008

20092009

2010-
def _get_fuzz_target_from_db(engine_name, fuzz_target_binary, job_type):
2010+
def _get_or_create_fuzz_target(engine_name, fuzz_target_binary, job_type):
20112011
project = data_handler.get_project_name(job_type)
20122012
qualified_name = data_types.fuzz_target_fully_qualified_name(
20132013
engine_name, project, fuzz_target_binary)
20142014
key = ndb.Key(data_types.FuzzTarget, qualified_name)
2015-
return key.get()
2015+
fuzz_target = key.get()
2016+
if fuzz_target:
2017+
return fuzz_target
2018+
fuzz_target = data_types.FuzzTarget(
2019+
engine=engine_name,
2020+
binary=fuzz_target_binary,
2021+
project=project)
2022+
fuzz_target.put()
2023+
return fuzz_target
20162024

20172025

20182026
def _preprocess_get_fuzz_target(fuzzer_name, job_type):
20192027
fuzz_target_name = _pick_fuzz_target()
20202028
if fuzz_target_name:
2021-
return _get_fuzz_target_from_db(fuzzer_name, fuzz_target_name, job_type)
2029+
return _get_or_create_fuzz_target(fuzzer_name, fuzz_target_name, job_type)
20222030
return None
20232031

20242032

0 commit comments

Comments
 (0)