Skip to content

[Bug] The build time on arm64 might take too long #585

@BewareMyPower

Description

@BewareMyPower

Search before asking

  • I searched in the issues and found nothing similar.

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

  1. 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.
  2. Use a native arm64 runner — QEMU emulation is ~10-20x slower than native; native arm64 GitHub-hosted runners are available.
  3. Both — binary cache + native arm64 runners would bring vcpkg install from hours down to minutes.

Are you willing to submit a PR?

  • I'm willing to submit a PR!

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions