Skip to content

fix(ci): restore network develop CI (load-tests, vcpkg, X509 100y, logger OpenSSL)#1167

Open
kcenon wants to merge 3 commits into
developfrom
fix/ci-load-tests-build-samples
Open

fix(ci): restore network develop CI (load-tests, vcpkg, X509 100y, logger OpenSSL)#1167
kcenon wants to merge 3 commits into
developfrom
fix/ci-load-tests-build-samples

Conversation

@kcenon

@kcenon kcenon commented Jun 23, 2026

Copy link
Copy Markdown
Owner

What

Restore network_system's develop CI to green. Beyond the original Network Load
Tests samples fix, this resolves the three build failures that have kept CI
and Integration Tests red on develop since 2026-05-21.

Change type: fix(ci) — build config + one workflow + one test source.

Why / Where

# Failure Root cause Fix
1 Network Load Tests (3 OS) build BUILD_SAMPLES defaults ON; un-migrated samples fail to compile -DBUILD_SAMPLES=OFF in the 3 Configure steps (network-load-tests.yml)
2 CI vcpkg install (all platforms) vcpkg-configuration.json registry baseline a3c5d7c8 (2026-04-09) predates the registry SHA512 correction (#88) → kcenon-common-system v0.2.0 "unexpected hash" baseline -> 1be52cbd (registry HEAD)
3 Integration Tests windows mock_tls_socket.cpp 100-year validity 60L*60*24*365*100 (~3.15e9) overflows 32-bit long on Windows use X509_time_adj_ex (day-based)
4 Integration Tests ubuntu Release link network_messaging_server_lifecycle_test links logger, whose HMAC integrity policy needs OpenSSL EVP_MAC_*, but the network_add_messaging_test helper didn't link libcrypto add OpenSSL::Crypto to the helper

How (verification)

  • vcpkg: confirmed common_system v0.2.0 tarball SHA512 matches the registry
    portfile at baseline 1be52cbd.
  • X509: X509_time_adj_ex(notAfter, 365*100, 0, nullptr) sets a 100-year
    validity in day units, no long-seconds overflow on any platform.
  • OpenSSL: $<TARGET_NAME_IF_EXISTS:OpenSSL::Crypto> links libcrypto for the
    logger-consuming messaging tests (the TLS tests already link it explicitly).
  • Verified by the PR's own CI and Integration Tests runs going green.

Notes: the doc-audit.yml startup_failure is fixed separately (#1168). The
underlying logger OpenSSL propagation (logger should export OpenSSL::Crypto
as a public/interface dependency) is a logger-side follow-up; this PR fixes it
consumer-side to unblock network CI now.

Relates to #964 (v1.0 readiness), Relates to #1165.

The Network Load Tests workflow (Ubuntu / macOS / Windows) configured without
-DBUILD_SAMPLES=OFF. BUILD_SAMPLES defaults ON in the root CMakeLists, so the
build compiled samples/, which were not migrated to the facade Result<T> API
(#952) and fail to compile (e.g. basic_usage.cpp treats the Result return of
create_server/create_client as a pointer). ninja stops before the actual
load-test binaries (tcp/udp/websocket_load_test) are built, so all three jobs
fail.

Add -DBUILD_SAMPLES=OFF to the three Configure CMake steps, matching the
sibling workflows (ci.yml, integration-tests.yml, coverage.yml,
sanitizers.yml) which already pass it. Samples are unrelated to load testing.

The samples' Result<T> migration and a concepts_example MSVC header omission
remain as separate real-code follow-ups, out of scope for this CI fix.
@github-actions

github-actions Bot commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Coverage Report

Metric Value
Line Coverage 71.1%
Branch Coverage 35.5%
Target 80% lines / 70% branches
Coverage Details

Full HTML report is available as a build artifact.

…OpenSSL)

Three develop CI build failures resolved alongside the Network Load Tests
samples fix:

1. CI (ci.yml) vcpkg install failed on every platform. The kcenon/vcpkg-registry
   baseline in vcpkg-configuration.json was pinned to a3c5d7c8 (2026-04-09),
   before the registry corrected common_system's v0.2.0 SHA512 (#88, 2026-05-03);
   vcpkg fetched a portfile with the stale hash and rejected the tarball
   ("unexpected hash"). Bump the baseline to 1be52cbd (registry HEAD), which
   carries the correct hash.

2. Integration Tests (windows) failed to compile. mock_tls_socket.cpp computed a
   100-year validity as `60L*60*24*365*100` (~3.15e9 s), overflowing a 32-bit
   long on LLP64/Windows (constexpr overflow error). Use X509_time_adj_ex
   (day-based) which sidesteps the long-seconds limit and is cross-platform.

3. Integration Tests (ubuntu Release) failed to link
   network_messaging_server_lifecycle_test: logger_system's HMAC integrity
   policy uses OpenSSL EVP_MAC, but the network_add_messaging_test helper did not
   link libcrypto, producing undefined references. Add OpenSSL::Crypto (guarded
   by TARGET_NAME_IF_EXISTS) to that helper, matching the explicit OpenSSL links
   already present on the TLS test targets.
@kcenon kcenon changed the title fix(ci): disable samples in Network Load Tests build fix(ci): restore network develop CI (load-tests, vcpkg, X509 100y, logger OpenSSL) Jun 23, 2026
The previous $<TARGET_NAME_IF_EXISTS:OpenSSL::Crypto> guard linked nothing because network's find_package(OpenSSL) is gated behind BUILD_TLS_SUPPORT, leaving OpenSSL::Crypto undefined for the messaging tests' generate step. Call find_package(OpenSSL 3.0.0 REQUIRED) inside network_add_messaging_test and link OpenSSL::Crypto unconditionally so logger_system's EVP_MAC symbols (rotating_file_writer compute_hmac) resolve at link time.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant