From f150837d0867c8ff8aeb7b934e9bb1516e50ce5e Mon Sep 17 00:00:00 2001 From: Lucas McDonald Date: Mon, 22 Jun 2026 14:24:14 -0700 Subject: [PATCH 1/3] fix: surface ESDK Java perf benchmark failures and tolerate shared config keys The benchmark entrypoint swallowed all exceptions and exited 0, so CI reported success even when no results were produced and then uploaded the stale, checked-in java_results.json to CloudWatch. Print the stack trace and exit non-zero on failure. The root failure: Config could not deserialize the shared test-scenarios.yaml because it contains keys used by other language benchmarks (size_limits). Ignore unknown properties so the shared config loads. --- .../java/src/main/java/com/amazon/esdk/benchmark/Program.java | 4 +++- .../src/main/java/com/amazon/esdk/benchmark/model/Config.java | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/esdk-performance-testing/benchmarks/java/src/main/java/com/amazon/esdk/benchmark/Program.java b/esdk-performance-testing/benchmarks/java/src/main/java/com/amazon/esdk/benchmark/Program.java index 844105c11..852e3d905 100644 --- a/esdk-performance-testing/benchmarks/java/src/main/java/com/amazon/esdk/benchmark/Program.java +++ b/esdk-performance-testing/benchmarks/java/src/main/java/com/amazon/esdk/benchmark/Program.java @@ -30,7 +30,9 @@ public static void main(final String[] args) { ); printSummary(results, options.outputPath()); } catch (final Exception ex) { - System.out.println("Benchmark failed: " + ex.getMessage()); + System.err.println("Benchmark failed: " + ex.getMessage()); + ex.printStackTrace(); + System.exit(1); } } diff --git a/esdk-performance-testing/benchmarks/java/src/main/java/com/amazon/esdk/benchmark/model/Config.java b/esdk-performance-testing/benchmarks/java/src/main/java/com/amazon/esdk/benchmark/model/Config.java index d35a006ef..c83e68e5d 100644 --- a/esdk-performance-testing/benchmarks/java/src/main/java/com/amazon/esdk/benchmark/model/Config.java +++ b/esdk-performance-testing/benchmarks/java/src/main/java/com/amazon/esdk/benchmark/model/Config.java @@ -3,6 +3,7 @@ package com.amazon.esdk.benchmark.model; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; @@ -13,6 +14,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +// Other languages share this config file and add keys Java doesn't model. +@JsonIgnoreProperties(ignoreUnknown = true) public final class Config { private static final Logger logger = LoggerFactory.getLogger(Config.class); From 5fa420ec68e9ea9b13e908ebecca30d044abea67 Mon Sep 17 00:00:00 2001 From: Lucas McDonald Date: Mon, 22 Jun 2026 14:25:25 -0700 Subject: [PATCH 2/3] TEMP (DO NOT MERGE): run perf benchmarks on PRs to validate dashboard Revert before merging. Lets this PR exercise the benchmark + CloudWatch upload so we can confirm the ESDK-Performance dashboard refreshes. --- .github/workflows/performance-benchmarks.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/performance-benchmarks.yml b/.github/workflows/performance-benchmarks.yml index a09705a0c..653a02e23 100644 --- a/.github/workflows/performance-benchmarks.yml +++ b/.github/workflows/performance-benchmarks.yml @@ -9,6 +9,9 @@ on: pull_request: paths: - ".github/workflows/performance-benchmarks.yml" + # TEMP (DO NOT MERGE): run on PRs touching benchmark sources to validate + # the CloudWatch dashboard updates. Revert before merging. + - "esdk-performance-testing/**" schedule: - cron: "00 09 * * *" From 94fbf29234e6262ffdb6781062e011d2cb63fda3 Mon Sep 17 00:00:00 2001 From: Lucas McDonald Date: Mon, 22 Jun 2026 14:29:39 -0700 Subject: [PATCH 3/3] Revert "TEMP (DO NOT MERGE): run perf benchmarks on PRs to validate dashboard" This reverts commit 5fa420ec68e9ea9b13e908ebecca30d044abea67. --- .github/workflows/performance-benchmarks.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/performance-benchmarks.yml b/.github/workflows/performance-benchmarks.yml index 653a02e23..a09705a0c 100644 --- a/.github/workflows/performance-benchmarks.yml +++ b/.github/workflows/performance-benchmarks.yml @@ -9,9 +9,6 @@ on: pull_request: paths: - ".github/workflows/performance-benchmarks.yml" - # TEMP (DO NOT MERGE): run on PRs touching benchmark sources to validate - # the CloudWatch dashboard updates. Revert before merging. - - "esdk-performance-testing/**" schedule: - cron: "00 09 * * *"