Skip to content

[CI] PR TCP benchmark compile job can hang until platform timeout #612

Description

@Coldwings

Bug Description

The PR tcp-benchmark-compile CI job has no repository-level timeout around its configure/build path. If TCP benchmark configure or target build hangs, the job can occupy CI until the GitHub Actions platform default timeout instead of failing within a repo-controlled bound.

Environment

  • Elio Version: main at d7b1d521f57d2931a59f597a2d6fb39b83025f69
  • Compiler: GitHub Actions CI
  • OS: Ubuntu 24.04 GitHub Actions runner
  • Kernel Version: GitHub-hosted runner kernel
  • Build Type: Release TCP benchmark compile job
  • CMake Version: GitHub Actions runner CMake

Build and Dependency Configuration

  • Full CMake configure command: .github/workflows/ci.yml Configure TCP benchmark build
  • Changed ELIO_* options: ELIO_BUILD_EXAMPLES=ON, ELIO_BUILD_TCP_BENCHMARKS=ON, TLS/HTTP/HTTP2 disabled
  • Consumption mode: source checkout in GitHub Actions PR CI
  • Relevant logs: static workflow review

Steps to Reproduce

  1. Open a PR that changes TCP benchmark-affecting paths.
  2. Let tcp-benchmark-compile run.
  3. If configure or build stalls, observe that the job has no explicit timeout-minutes or command-level timeout bound.

Minimal Reproducible Example

Not a code API issue; this is visible in .github/workflows/ci.yml.

Expected Behavior

The TCP benchmark compile job should have an explicit repository-controlled timeout appropriate for a compile-only check.

Actual Behavior

tcp-benchmark-compile runs CMake configure and build without an explicit job or command timeout.

Error Messages

Not applicable.

ASAN/TSAN Output

Not applicable.

Additional Context

Evidence:

  • .github/workflows/ci.yml defines tcp-benchmark-compile at the job level.
  • Its configure/build steps run CMake directly.
  • The job lacks timeout-minutes, and those steps are not wrapped with shell timeout.
  • Other benchmark runtime steps in CI do use explicit command-level timeout wrappers.

Related Issues

Possible Solution

Add a concrete timeout-minutes to tcp-benchmark-compile, or wrap the configure/build commands with fixed shell timeouts.

Checklist

  • I have searched existing issues to avoid duplicates
  • I have provided all requested information
  • I have included a minimal reproducible example (if possible)
  • I have tested with the latest version of Elio
  • I have included sanitizer output (for memory/threading issues)

Metadata

Metadata

Assignees

No one assigned

    Labels

    ciContinuous integration or test workflow issue

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions