Summary
The new linux64_asan job fails in qt/test/test_dash-qt after all Qt tests pass because LeakSanitizer reports four small allocations from Qt's QDBusConnectionManager::executeConnectionRequest:
==52718==ERROR: LeakSanitizer: detected memory leaks
...
#3 QDBusConnectionManager::executeConnectionRequest(...)
...
SUMMARY: AddressSanitizer: 86 byte(s) leaked in 4 allocation(s).
FAIL qt/test/test_dash-qt (exit status: 1)
The existing test/sanitizer_suppressions/lsan entry for QDBusConnectionPrivate suppresses related Qt allocations but does not match these four stacks.
Evidence
This reproduces on develop itself at e25f9925df4f0bafaf5f6d13ac34e14bdc8eecc9:
The identical 86-byte/four-allocation leak also appears on PR #7479, whose merge base is exactly that develop commit:
In both jobs, every Qt test reports success before LeakSanitizer terminates the test binary.
Root cause
This is a dependency-level Qt DBus shutdown leak, not a test assertion or Dash wallet failure. The leak stack is entirely in Qt/DBus connection management, and the same signature and byte count occur on unmodified develop.
Reproduction
- Check out
e25f9925df4f0bafaf5f6d13ac34e14bdc8eecc9.
- Run the repository's
linux64_asan CI target (the configuration in ci/test/00_setup_env_native_asan.sh, with leak detection enabled and test/sanitizer_suppressions/lsan).
- Observe that
qt/test/test_dash-qt passes its test cases, then exits 1 with the four QDBusConnectionManager::executeConnectionRequest allocations above.
Suggested direction
Add a narrowly scoped LSAN suppression for this Qt dependency stack (or ensure the Qt DBus connection manager is shut down before process exit), then verify no Dash-owned leaks are hidden.
Summary
The new
linux64_asanjob fails inqt/test/test_dash-qtafter all Qt tests pass because LeakSanitizer reports four small allocations from Qt'sQDBusConnectionManager::executeConnectionRequest:The existing
test/sanitizer_suppressions/lsanentry forQDBusConnectionPrivatesuppresses related Qt allocations but does not match these four stacks.Evidence
This reproduces on
developitself ate25f9925df4f0bafaf5f6d13ac34e14bdc8eecc9:developCI run: https://github.com/dashpay/dash/actions/runs/31222050806linux64_asan-build / Build sourcejob: https://github.com/dashpay/dash/actions/runs/31222050806/job/93009844804The identical 86-byte/four-allocation leak also appears on PR #7479, whose merge base is exactly that
developcommit:In both jobs, every Qt test reports success before LeakSanitizer terminates the test binary.
Root cause
This is a dependency-level Qt DBus shutdown leak, not a test assertion or Dash wallet failure. The leak stack is entirely in Qt/DBus connection management, and the same signature and byte count occur on unmodified
develop.Reproduction
e25f9925df4f0bafaf5f6d13ac34e14bdc8eecc9.linux64_asanCI target (the configuration inci/test/00_setup_env_native_asan.sh, with leak detection enabled andtest/sanitizer_suppressions/lsan).qt/test/test_dash-qtpasses its test cases, then exits 1 with the fourQDBusConnectionManager::executeConnectionRequestallocations above.Suggested direction
Add a narrowly scoped LSAN suppression for this Qt dependency stack (or ensure the Qt DBus connection manager is shut down before process exit), then verify no Dash-owned leaks are hidden.