Skip to content

fix(otlp): return false and warn when OTLP transport is unavailable#603

Merged
kcenon merged 3 commits into
mainfrom
fix/issue-602-otlp-stub-silent-success
Apr 13, 2026
Merged

fix(otlp): return false and warn when OTLP transport is unavailable#603
kcenon merged 3 commits into
mainfrom
fix/issue-602-otlp-stub-silent-success

Conversation

@kcenon

@kcenon kcenon commented Apr 13, 2026

Copy link
Copy Markdown
Owner

Summary

  • Change OTLP stub from silently returning true to returning false
  • Add one-time stderr warning with build instructions when transport is unavailable
  • Callers now correctly know export did not succeed

Related Issues

Closes #602

Files Changed

File Change
src/impl/writers/otlp_writer.cpp Return false + stderr warning in stub mode

Test Plan

  • Stub mode returns false (not true)
  • Warning printed to stderr on first call only
  • Warning includes LOGGER_ENABLE_OTLP=ON build instruction
  • Existing otlp_test passes

The OTLP writer stub built a complete JSON payload but returned true
without actually sending it. Callers believed telemetry was being
exported when it was silently discarded.

Change stub behavior to:
- Return false so callers know export did not succeed
- Emit one-time stderr warning with build instructions

Closes #602
@github-actions

github-actions Bot commented Apr 13, 2026

Copy link
Copy Markdown
Contributor

Performance Regression Check

Benchmark Base (ns) PR (ns) Delta
BM_AsyncDecorator 333.2 331.6 -0.5%
BM_BufferedAsyncDecorator 116.0 111.1 -4.2%
BM_BufferedDecorator 822.6 829.0 +0.8%
BM_ConsoleAsyncDecorator 240.3 248.4 +3.4%
BM_DirectConsoleWriter 6139.9 5923.6 -3.5%
BM_DirectFileWriter 723.7 725.5 +0.2%
BM_ManualNesting_Async 267.0 294.1 ⚠️ +10.1%
BM_ManualNesting_BufferedAsync 115.9 118.1 +1.8%
BM_ObjectPool_HighContention/real_time/threads:4 1085.5 1069.0 -1.5%
BM_ObjectPool_HighContention/real_time/threads:8 1269.5 1250.9 -1.5%
BM_ObjectPool_MultiThread/real_time/threads:1 18.3 18.3 +0.0%
BM_ObjectPool_MultiThread/real_time/threads:2 81.4 89.3 ⚠️ +9.7%
BM_ObjectPool_MultiThread/real_time/threads:4 109.4 109.0 -0.4%
BM_ObjectPool_MultiThread/real_time/threads:8 127.3 127.1 -0.2%
BM_ObjectPool_SingleThread 18.1 17.7 -2.7%
BM_ThreadLocalObjectPool_CacheEfficiency/16/real_time/threads:4 1.5 1.5 -0.1%
BM_ThreadLocalObjectPool_CacheEfficiency/32/real_time/threads:4 1.5 1.5 +0.0%
BM_ThreadLocalObjectPool_CacheEfficiency/4/real_time/threads:4 1.5 1.5 -0.6%
BM_ThreadLocalObjectPool_CacheEfficiency/64/real_time/threads:4 1.5 1.5 +0.1%
BM_ThreadLocalObjectPool_CacheEfficiency/8/real_time/threads:4 1.5 1.6 ⚠️ +5.5%
BM_ThreadLocalObjectPool_HighContention/real_time/threads:4 158.6 156.8 -1.1%
BM_ThreadLocalObjectPool_HighContention/real_time/threads:8 154.1 152.3 -1.2%
BM_ThreadLocalObjectPool_MultiThread/real_time/threads:1 4.1 4.1 +0.4%
BM_ThreadLocalObjectPool_MultiThread/real_time/threads:2 17.1 17.1 -0.0%
BM_ThreadLocalObjectPool_MultiThread/real_time/threads:4 17.8 17.8 +0.4%
BM_ThreadLocalObjectPool_MultiThread/real_time/threads:8 16.7 17.1 +2.6%
BM_ThreadLocalObjectPool_SingleThread 3.4 3.4 +0.0%
BM_Throughput_LargeMessages 178.8 184.0 +2.9%
BM_Throughput_SmallMessages 179.6 124.0 🚀 -30.9%

Threshold: >5% regression triggers warning
Result: ⚠️ 3 benchmark(s) show potential regression

@kcenon

kcenon commented Apr 13, 2026

Copy link
Copy Markdown
Owner Author

CI Failure Analysis

Field Value
Workflow Integration Tests
Failed Job Integration Tests (Windows) (Release)
Failed Step Configure CMake
Root Cause vcpkg registry SHA512 hash mismatch for kcenon-common-system@0.2.0

Diagnosis

The Windows integration test job uses vcpkg to resolve dependencies. During vcpkg install, the kcenon-common-system@0.2.0 port fails because the SHA512 hash in the vcpkg-registry portfile no longer matches the actual GitHub archive at https://github.com/kcenon/common_system/archive/v0.2.0.tar.gz.

Expected: 7385ba3a073fea06...
Actual:   ac458878395dbac6...

This is a pre-existing issue also affecting the main branch (run #24319989876).

Why Only Windows?

  • Ubuntu/macOS: Use actions/checkout + FetchContent (no vcpkg) — not affected
  • Windows: Uses vcpkg manifest resolution which downloads from registry — affected by hash mismatch

Fix

Remove vcpkg dependency from Windows integration tests to align with Ubuntu/macOS behavior. The build system (UnifiedDependencies.cmake) already supports finding common_system from local checkout and fetching GTest via FetchContent with Windows-specific settings.

The Windows integration test job used vcpkg to resolve dependencies,
but the kcenon-common-system@0.2.0 portfile SHA512 no longer matches
the GitHub archive, breaking CMake configuration.

Replace vcpkg with the same FetchContent approach used by Ubuntu and
macOS jobs. The build system (UnifiedDependencies.cmake) already
resolves common_system from the checked-out sibling directory and
fetches GTest via FetchContent with Windows-specific settings.
@kcenon kcenon merged commit ccef24e into main Apr 13, 2026
34 checks passed
@kcenon kcenon deleted the fix/issue-602-otlp-stub-silent-success branch April 13, 2026 04:03
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.

fix: OTLP writer stub silently returns success without sending data

1 participant