Search before asking
Version
f2c0fec
Minimal reproduce step
https://github.com/apache/pulsar-client-cpp/actions/runs/26613317193/job/78778604980
What did you expect to see?
n/a
What did you see instead?
The task is cancelled after 6 hours.
Anything else?
Here's the analysis:
Root Cause: GitHub Actions 6-Hour Hard Limit
Timeline:
- Job start:
2026-06-01T02:41:44
- Cancellation:
2026-06-01T08:41:56
- Duration: exactly 6 hours
The timeout-minutes: 500 (~8.3h) in the workflow YAML is irrelevant here — GitHub Actions enforces a hard 6-hour wall-clock limit per job for GitHub-hosted runners, regardless of what timeout-minutes is set to.
What Took So Long
The job was building Build Alpine arm64 via Docker/QEMU emulation (cross-compiling arm64 on an x86_64 runner), and vcpkg had to build all 87 dependencies from source with no cache hits:
| Package |
Time |
protobuf:arm64-linux |
3.2 hours |
zstd:arm64-linux |
8.4 minutes |
snappy:arm64-linux |
1.4 minutes |
| ... (84 others) |
remaining time |
The vcpkg install only just finished at 08:41:48 (all 87 packages done), and the job was immediately cancelled at 08:41:56 — literally seconds after vcpkg completed, before the actual cmake build of pulsar-client-cpp even started.
Fix Options
- Use a vcpkg binary cache (GitHub Actions cache) — so packages like protobuf don't rebuild from scratch every run. This is the most impactful fix.
- Use a native arm64 runner — QEMU emulation is ~10-20x slower than native; native arm64 GitHub-hosted runners are available.
- Both — binary cache + native arm64 runners would bring vcpkg install from hours down to minutes.
Are you willing to submit a PR?
Search before asking
Version
f2c0fec
Minimal reproduce step
https://github.com/apache/pulsar-client-cpp/actions/runs/26613317193/job/78778604980
What did you expect to see?
n/a
What did you see instead?
The task is cancelled after 6 hours.
Anything else?
Here's the analysis:
Root Cause: GitHub Actions 6-Hour Hard Limit
Timeline:
2026-06-01T02:41:442026-06-01T08:41:56The
timeout-minutes: 500(~8.3h) in the workflow YAML is irrelevant here — GitHub Actions enforces a hard 6-hour wall-clock limit per job for GitHub-hosted runners, regardless of whattimeout-minutesis set to.What Took So Long
The job was building
Build Alpine arm64via Docker/QEMU emulation (cross-compiling arm64 on an x86_64 runner), and vcpkg had to build all 87 dependencies from source with no cache hits:protobuf:arm64-linuxzstd:arm64-linuxsnappy:arm64-linuxThe vcpkg install only just finished at
08:41:48(all 87 packages done), and the job was immediately cancelled at08:41:56— literally seconds after vcpkg completed, before the actual cmake build of pulsar-client-cpp even started.Fix Options
Are you willing to submit a PR?