Skip to content

fix: scope IsSystemLib's noisy-dlopen libs to runtime rediscovery only - #130

Merged
ilmanzo merged 1 commit into
mainfrom
fix/issystemlib-install-time-scope
Aug 9, 2026
Merged

fix: scope IsSystemLib's noisy-dlopen libs to runtime rediscovery only#130
ilmanzo merged 1 commit into
mainfrom
fix/issystemlib-install-time-scope

Conversation

@ilmanzo

@ilmanzo ilmanzo commented Aug 9, 2026

Copy link
Copy Markdown
Owner

Summary

  • The isSystemLib unification (c5c06a7) merged install-time ldd filtering and runtime dlopen-rediscovery filtering into one regex (the union of both lists). That silently changed install-time behavior: libselinux, libsystemd, libpam, libaudit, libdbus, libudev, libmount, libblkid, libuuid, and the glib/gobject/gio stack were previously only skipped for noisy runtime dlopen rediscovery, never for static ldd-based enumeration.
  • After the merge, a binary directly linking any of them (an ordinary ldd dependency) got those functions silently dropped from install-time enumeration too — confirmed losing 1124 functions (libselinux.so.1 + libsystemd.so.0 entirely) on a real coverage run.
  • Splits funkutil.IsSystemLib back into two: IsSystemLib (glibc/ld.so-family only, used by install-time ParseLddLibraries) and IsNoisyDlopenLib (IsSystemLib's set plus the bulky/common dlopen targets, used by runtime handleDynamicLoad). Keeps the one genuine improvement from the original unification (libresolv/libnsl/libutil/libcrypt/libanl now consistently skipped everywhere) without the regression.

Test plan

  • go build ./... and go vet ./... pass
  • ./run_unit_tests.sh passes, including new TestIsNoisyDlopenLib and extended TestIsSystemLib cases covering libselinux/libsystemd/libpam (the original "unified" test never covered these — how the regression shipped unnoticed)
  • Verified live against a real openQA coverage run: libselinux.so.1/libsystemd.so.0 are back in the report, and total enumerated function count reconciles exactly against a known-good baseline (40507 − 132 legitimate ctor/dtor-dedup fix = 40375, matching precisely)

The isSystemLib unification (c5c06a7) merged install-time ldd filtering
and runtime dlopen-rediscovery filtering into one regex, using the union
of both lists. That silently changed install-time behavior: libselinux,
libsystemd, libpam, libaudit, libdbus, libudev, libmount, libblkid,
libuuid, and the glib/gobject/gio stack were previously only skipped for
noisy runtime dlopen rediscovery, never for static ldd-based enumeration.
After the merge, a binary directly linking any of them (an ordinary ldd
dependency) got those functions silently dropped from install-time
enumeration too — confirmed losing 1124 functions (libselinux.so.1 +
libsystemd.so.0 entirely) on a real coverage run.

Split back into two: IsSystemLib (glibc/ld.so-family only, used by
install-time ParseLddLibraries) and IsNoisyDlopenLib (IsSystemLib's set
plus the bulky/common dlopen targets, used by runtime handleDynamicLoad).
Keeps the one part of the unification that was a genuine improvement
(libresolv/libnsl/libutil/libcrypt/libanl now consistently skipped
everywhere) without the regression.
@codecov-commenter

Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

❌ Patch coverage is 80.00000% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 43.84%. Comparing base (d9ef3ae) to head (238acd9).

Files with missing lines Patch % Lines
cmd/shim_binary/tracer.go 0.00% 1 Missing ⚠️
❗ Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #130      +/-   ##
==========================================
+ Coverage   43.73%   43.84%   +0.11%     
==========================================
  Files          11       11              
  Lines        1525     1528       +3     
==========================================
+ Hits          667      670       +3     
  Misses        762      762              
  Partials       96       96              

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@ilmanzo
ilmanzo merged commit 7700ca3 into main Aug 9, 2026
2 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.

2 participants