Repository: google/fuzzbench

Issue:
[GCP] Runners are not started.
I pulled master and tried to evaluate libfuzzer against honggfuzz in 5 trials for 1 hour on 1 benchmark (mbedtls_fuzz_dtlsclient). It doesn't generate the report anymore. The web bucket is empty, the experiments-result folder does not exist in the data bucket, the SQL database is empty, and the Error Reporting gives the following error:
```
ValueError: Empty experiment data. Message: Error generating HTML report.
at validate_data (/work/src/analysis/data_utils.py:21)
at generate_report (/work/src/analysis/generate_report.py:132)
at output_report (/work/src/experiment/reporter.py:43)
```

I deleted authorization keys of the service account. I deleted the old and set up a new SQL database (incl. `alembic upgrade head`). I cleaned out the container registry (by deleting the `container` folder in the corresponding bucket). I cleaned out the Cloud Builds (by deleting `source` folder in the corresponding bucket). It recreates the containers and builds, when I start the dispatcher. The dispatcher runs properly. I SSH'ed into a random runner: `docker images` and `docker ps -a` return empty-handed. Is the recent setup gcr.io/fuzzbench-specific? Any suggestion to debug?


Discussion:
Thanks for this report.
Sorry about this problem, we are looking into it now.
To debug you can look at /tmp/runner-log.txt on the runners host (not within the docker container).
(I'm going to file an issue to copy this file to the data bucket).
2020-05-01 09:57:41.621 PDT
Executed command: "nice -n 5 python3 -u -c import fuzzer; fuzzer.fuzz('/out/seeds', '/out/corpus', '/out/fuzz_dtlsclient')" returned: -9.

other part of logs seem normal, let me try running this locally.
>experiments-result

You mean experiments-folders right?

Resolving patch:
diff --git a/common/benchmark_utils.py b/common/benchmark_utils.py
--- a/common/benchmark_utils.py
+++ b/common/benchmark_utils.py
@@ -48,9 +48,6 @@ def get_runner_image_url(benchmark, fuzzer, cloud_project):
     """Get the URL of the docker runner image for fuzzing the benchmark with
     fuzzer."""
     base_tag = experiment_utils.get_base_docker_tag(cloud_project)
-    if is_oss_fuzz(benchmark):
-        return '{base_tag}/oss-fuzz/runners/{fuzzer}/{project}'.format(
-            base_tag=base_tag, fuzzer=fuzzer, project=get_project(benchmark))
     return '{base_tag}/runners/{fuzzer}/{benchmark}'.format(base_tag=base_tag,
                                                             fuzzer=fuzzer,
                                                             benchmark=benchmark)
@@ -60,9 +57,6 @@ def get_builder_image_url(benchmark, fuzzer, cloud_project):
     """Get the URL of the docker builder image for fuzzing the benchmark with
     fuzzer."""
     base_tag = experiment_utils.get_base_docker_tag(cloud_project)
-    if is_oss_fuzz(benchmark):
-        return '{base_tag}/oss-fuzz/builders/{fuzzer}/{project}'.format(
-            base_tag=base_tag, fuzzer=fuzzer, project=get_project(benchmark))
     return '{base_tag}/builders/{fuzzer}/{benchmark}'.format(
         base_tag=base_tag, fuzzer=fuzzer, benchmark=benchmark)
 


Test patch:
diff --git a/common/test_benchmark_utils.py b/common/test_benchmark_utils.py
--- a/common/test_benchmark_utils.py
+++ b/common/test_benchmark_utils.py
@@ -57,7 +57,7 @@ def test_get_fuzz_target(benchmark, expected_fuzz_target, oss_fuzz_benchmark):
 @pytest.mark.parametrize(
     'benchmark,expected_url',
     [(conftest.OSS_FUZZ_BENCHMARK_NAME,
-      'gcr.io/fuzzbench/oss-fuzz/runners/fuzzer/oss-fuzz-project'),
+      'gcr.io/fuzzbench/runners/fuzzer/oss-fuzz-benchmark'),
      (OTHER_BENCHMARK, 'gcr.io/fuzzbench/runners/fuzzer/benchmark')])
 def test_get_runner_image_url(benchmark, expected_url, oss_fuzz_benchmark):
     """Test that we can get the runner image url of a benchmark."""
diff --git a/experiment/test_scheduler.py b/experiment/test_scheduler.py
--- a/experiment/test_scheduler.py
+++ b/experiment/test_scheduler.py
@@ -67,8 +67,8 @@ def create_trial(experiment, time_started=None, time_ended=None):
     'benchmark,expected_image,expected_target',
     [('benchmark1', 'gcr.io/fuzzbench/runners/variant/benchmark1',
       'fuzz-target'),
-     ('bloaty_fuzz_target', 'gcr.io/fuzzbench/oss-fuzz/runners/variant/bloaty',
-      'fuzz_target')])
+     ('bloaty_fuzz_target',
+      'gcr.io/fuzzbench/runners/variant/bloaty_fuzz_target', 'fuzz_target')])
 def test_create_trial_instance(benchmark, expected_image, expected_target,
                                experiment_config):
     """Test that create_trial_instance invokes create_instance
@@ -103,8 +103,8 @@ def test_create_trial_instance(benchmark, expected_image, expected_target,
     'benchmark,expected_image,expected_target',
     [('benchmark1', 'gcr.io/fuzzbench/runners/variant/benchmark1',
       'fuzz-target'),
-     ('bloaty_fuzz_target', 'gcr.io/fuzzbench/oss-fuzz/runners/variant/bloaty',
-      'fuzz_target')])
+     ('bloaty_fuzz_target',
+      'gcr.io/fuzzbench/runners/variant/bloaty_fuzz_target', 'fuzz_target')])
 def test_create_trial_instance_local_experiment(benchmark, expected_image,
                                                 expected_target,
                                                 experiment_config, environ):