Skip to content

fix measurer process early break #2076

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 3 additions & 9 deletions experiment/measurer/measure_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -733,9 +733,8 @@ def measure_manager_inner_loop(experiment: str, max_cycle: int, request_queue,
unmeasured_snapshots = get_unmeasured_snapshots(experiment, max_cycle)
logger.info('Retrieved %d unmeasured snapshots from measure manager',
len(unmeasured_snapshots))
# When there are no more snapshots left to be measured, should break loop.
if not unmeasured_snapshots:
return False
return

# Write measurements requests to request queue
for unmeasured_snapshot in unmeasured_snapshots:
Expand All @@ -759,8 +758,6 @@ def measure_manager_inner_loop(experiment: str, max_cycle: int, request_queue,
if measured_snapshots:
db_utils.add_all(measured_snapshots)

return True


def get_pool_args(measurers_cpus, runners_cpus):
"""Return pool args based on measurer cpus and runner cpus arguments."""
Expand Down Expand Up @@ -815,11 +812,8 @@ def measure_manager_loop(experiment: str,
max_cycle = _time_to_cycle(max_total_time)
queued_snapshots = set()
while not scheduler.all_trials_ended(experiment):
continue_inner_loop = measure_manager_inner_loop(
experiment, max_cycle, request_queue, response_queue,
queued_snapshots)
if not continue_inner_loop:
break
measure_manager_inner_loop(experiment, max_cycle, request_queue,
response_queue, queued_snapshots)
time.sleep(MEASUREMENT_LOOP_WAIT)
logger.info('All trials ended. Ending measure manager loop')

Expand Down
14 changes: 0 additions & 14 deletions experiment/measurer/test_measure_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -457,20 +457,6 @@ def test_consume_snapshot_type_from_response_queue():
assert len(snapshots) == 1


@mock.patch('experiment.measurer.measure_manager.get_unmeasured_snapshots')
def test_measure_manager_inner_loop_break_condition(
mocked_get_unmeasured_snapshots):
"""Tests that the measure manager inner loop returns False when there's no
more snapshots left to be measured."""
# Empty list means no more snapshots left to be measured.
mocked_get_unmeasured_snapshots.return_value = []
request_queue = queue.Queue()
response_queue = queue.Queue()
continue_inner_loop = measure_manager.measure_manager_inner_loop(
'experiment', 1, request_queue, response_queue, set())
assert not continue_inner_loop


@mock.patch('experiment.measurer.measure_manager.get_unmeasured_snapshots')
@mock.patch(
'experiment.measurer.measure_manager.consume_snapshots_from_response_queue')
Expand Down
6 changes: 3 additions & 3 deletions service/experiment-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
# Unless you are a fuzzbench maintainer running this service, this
# will not work with your setup.

trials: 20
max_total_time: 82800 # 23 hours, the default time for preemptible experiments.
trials: 5
max_total_time: 4000 # 1 hours+ for testing only.
cloud_project: fuzzbench
docker_registry: gcr.io/fuzzbench
cloud_compute_zone: us-central1-c
Expand All @@ -15,7 +15,7 @@ preemptible_runners: true

# This experiment should generate a report that is combined with other public
# "production" experiments.
merge_with_nonprivate: true
merge_with_nonprivate: false

# This experiment should be merged with other reports in later experiments.
private: false
2 changes: 1 addition & 1 deletion service/gcbrun_experiment.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
"""Entrypoint for gcbrun into run_experiment. This script will get the command
from the last PR comment containing "/gcbrun" and pass it to run_experiment.py
which will run an experiment."""

# dummy change.
import logging
import os
import sys
Expand Down
Loading