Skip to content

PG-2125: Switching kmip support to the new C++ kmip client library#595

Merged
dutow merged 2 commits into
percona:mainfrom
dutow:libkmip-rework
Jul 15, 2026
Merged

PG-2125: Switching kmip support to the new C++ kmip client library#595
dutow merged 2 commits into
percona:mainfrom
dutow:libkmip-rework

Conversation

@dutow

@dutow dutow commented Jun 1, 2026

Copy link
Copy Markdown
Collaborator

This commit updates the submodule pointer for kmip and reworks our code to use a new C++ api instead of the old and buggy C api.

@dutow
dutow force-pushed the libkmip-rework branch 3 times, most recently from e5ca208 to bf387f1 Compare June 1, 2026 18:12
@codecov-commenter

codecov-commenter commented Jun 1, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 59.45946% with 30 lines in your changes missing coverage. Please review.
✅ Project coverage is 56.68%. Comparing base (61885b2) to head (6ca02bb).

❌ Your project status has failed because the head coverage (76.56%) is below the target coverage (90.00%). You can increase the head coverage or adjust the target coverage.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #595      +/-   ##
==========================================
- Coverage   56.74%   56.68%   -0.07%     
==========================================
  Files          72       71       -1     
  Lines       11297    11236      -61     
  Branches     2781     2778       -3     
==========================================
- Hits         6411     6369      -42     
+ Misses       3525     3502      -23     
- Partials     1361     1365       +4     
Components Coverage Δ
access 80.95% <ø> (ø)
bin 63.78% <ø> (ø)
catalog 80.03% <ø> (ø)
common 91.66% <ø> (ø)
encryption 65.56% <ø> (ø)
keyring 64.96% <59.45%> (-0.60%) ⬇️
src 87.04% <ø> (ø)
smgr 89.23% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@dutow
dutow force-pushed the libkmip-rework branch from 78cfd9a to def5c7b Compare June 1, 2026 20:25
@dutow
dutow force-pushed the libkmip-rework branch 2 times, most recently from 405c686 to bf78991 Compare June 16, 2026 22:37
@dutow dutow changed the title Switching kmip support to the new C++ kmip client library PG-2125: Switching kmip support to the new C++ kmip client library Jun 17, 2026

@dAdAbird dAdAbird left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM overall, I'm just not sure about the pgindent scope change

Comment thread ci_scripts/run-pgindent.sh Outdated
Comment thread .github/workflows/sanitizers.yml
Comment thread .github/workflows/coverage.yml
Comment thread ci_scripts/run-clang-format.sh Outdated
Comment thread ci_scripts/run-clang-format.sh Outdated
Comment thread meson.build Outdated
Comment thread src/keyring/keyring_kmip.cpp Outdated
Comment thread src/keyring/keyring_kmip.cpp
Comment thread src/keyring/keyring_kmip.cpp Outdated
Comment thread src/keyring/keyring_kmip.cpp Outdated
Comment thread src/keyring/keyring_kmip.cpp Outdated
@dutow
dutow force-pushed the libkmip-rework branch from bf78991 to 21332f3 Compare July 6, 2026 13:28
@dutow
dutow requested review from dAdAbird and jeltz July 6, 2026 13:54
@dutow
dutow force-pushed the libkmip-rework branch from 21332f3 to 93f4310 Compare July 6, 2026 14:36

@jeltz jeltz left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved, but see my comment on Slack about way forward.

dutow added 2 commits July 15, 2026 11:16
This commit updates the submodule pointer for kmip and reworks our code
to use a new C++ api instead of the old and buggy C api.
The backend failed to load pg_tde.so under sanitizers with "undefined
symbol: __ubsan_vptr_type_cache", so every test that starts a server
errored. That symbol is provided only by the C++-only UBSan runtime
(ubsan_standalone_cxx), which is not linked into the C postgres backend
that dlopens the module. Disable the vptr check for the C++ objects and
build the C++ sources/links with the sanitizer flags (CXX=clang++) so a
single clang ASan/UBSan runtime is used throughout.

Drop the ASAN_SYMBOLIZER_PATH override: /usr/bin/llvm-symbolizer-14
does not exist on the runner, so ASan could not symbolize its reports;
without the override it finds a working llvm-symbolizer in PATH.

Ignore geninfo "mismatch" errors in the coverage job: geninfo reports
them on the coverage data of the C++ objects, and lcov 2.x treats them
as fatal by default.
@dutow
dutow merged commit a428ac1 into percona:main Jul 15, 2026
35 checks passed
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.

4 participants