From daa21524efc97083c10ecb8c4ca1ae5b2d8a9503 Mon Sep 17 00:00:00 2001 From: not-matthias Date: Thu, 22 Jan 2026 11:19:39 +0100 Subject: [PATCH 1/4] fix(example): reduce fib computation workload --- example/helper.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/example/helper.go b/example/helper.go index 5ee6592c..567c7e73 100644 --- a/example/helper.go +++ b/example/helper.go @@ -19,7 +19,7 @@ func expensiveOperation() uint64 { } // Expensive recursive computation that will dominate flamegraph - fibResult := recursiveFib(30) + fibResult := recursiveFib(15) // More expensive work - sum the data sum := uint64(0) @@ -40,6 +40,6 @@ func doWork(n int) uint64 { func actualWork() uint64 { time.Sleep(1 * time.Millisecond) - result := doWork(30) + result := doWork(15) return 42 + result } From 8b0c65c2942ce347c4a90edeba7405e00c6a5360 Mon Sep 17 00:00:00 2001 From: not-matthias Date: Tue, 20 Jan 2026 16:16:52 +0100 Subject: [PATCH 2/4] fix(go-runner): ensure test binary exists after execution --- go-runner/src/runner/mod.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/go-runner/src/runner/mod.rs b/go-runner/src/runner/mod.rs index c435a277..7347cc76 100644 --- a/go-runner/src/runner/mod.rs +++ b/go-runner/src/runner/mod.rs @@ -23,6 +23,9 @@ fn run_cmd>( let mut cmd = Command::new(go_binary); cmd.args([ "test", + // Keep the test binary on disk after executing it. This is required by + // the runner to properly parse the symbols and debug info. + "-work", "-overlay", &overlay_file.to_string_lossy(), "-bench", From 3f94c58a36057930db3ba5ee493162e5ce3e475f Mon Sep 17 00:00:00 2001 From: not-matthias Date: Thu, 22 Jan 2026 10:46:22 +0100 Subject: [PATCH 3/4] fix(go-runner): disable stripping of symbols and debug information --- go-runner/src/runner/mod.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/go-runner/src/runner/mod.rs b/go-runner/src/runner/mod.rs index 7347cc76..3d535d2d 100644 --- a/go-runner/src/runner/mod.rs +++ b/go-runner/src/runner/mod.rs @@ -23,6 +23,8 @@ fn run_cmd>( let mut cmd = Command::new(go_binary); cmd.args([ "test", + // Disable stripping of symbols and debug information + "-ldflags=-s=false -w=false", // Keep the test binary on disk after executing it. This is required by // the runner to properly parse the symbols and debug info. "-work", From 251640adc6ce6e4eef4b1a1097f73a7db8d575f8 Mon Sep 17 00:00:00 2001 From: not-matthias Date: Tue, 20 Jan 2026 18:02:51 +0100 Subject: [PATCH 4/4] wip: test with new runner fix --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9bff0687..e027fd9f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -62,6 +62,7 @@ jobs: env: CODSPEED_GO_PKG_VERSION: ${{ github.head_ref || github.ref_name }} with: + runner-version: branch:cod-2057-perf-timeout-in-codspeed-go-makes-benchmark-hang mode: walltime working-directory: example run: cargo r --release --manifest-path ../go-runner/Cargo.toml -- test -bench=. ${{ matrix.target }}