This is an automated email from the ASF dual-hosted git repository.
paleolimbot pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-nanoarrow.git
The following commit(s) were added to refs/heads/main by this push:
new 9db8f568 chore(ci): Add valgrind suppressions for Arrow C++ dynamic
library initialization (#891)
9db8f568 is described below
commit 9db8f5682cdb2eb0c827b58c1654a35dbd402ce0
Author: Dewey Dunnington <[email protected]>
AuthorDate: Tue Jun 2 17:16:31 2026 -0500
chore(ci): Add valgrind suppressions for Arrow C++ dynamic library
initialization (#891)
This CI adds valgrind suppressions for the Arrow C++ shared object
initialization, which apparently has an uninitialized conditional
valgrind note. The prefix is `mi_` so I am guessing mimalloc but I'm not
sure.
I also added a slight modification to upload the verification directory
in case of failure (to more easily debug these in the future).
---
.github/workflows/verify.yaml | 14 +++++++++++++-
valgrind.supp | 10 ++++++++++
2 files changed, 23 insertions(+), 1 deletion(-)
diff --git a/.github/workflows/verify.yaml b/.github/workflows/verify.yaml
index f5633904..47bba214 100644
--- a/.github/workflows/verify.yaml
+++ b/.github/workflows/verify.yaml
@@ -170,5 +170,17 @@ jobs:
run: |
cd src
+ mkdir -p ../nanoarrow-verify-tmp
echo "::group::Docker Pull"
- docker compose run -e GITHUB_ACTIONS ${{ matrix.config.compose_args
}} verify
+ docker compose run \
+ -e GITHUB_ACTIONS \
+ -e NANOARROW_TMPDIR=/nanoarrow-verify-tmp \
+ -v "$(pwd)/../nanoarrow-verify-tmp:/nanoarrow-verify-tmp" \
+ ${{ matrix.config.compose_args }} verify
+
+ - name: Upload temp directory
+ if: failure()
+ uses: actions/upload-artifact@main
+ with:
+ path: nanoarrow-verify-tmp
+ name: nanoarrow-verify-tmp-${{ matrix.config.platform }}-${{
matrix.config.arch }}${{ matrix.config.extra_label }}
diff --git a/valgrind.supp b/valgrind.supp
index c26db940..46cae895 100644
--- a/valgrind.supp
+++ b/valgrind.supp
@@ -15,6 +15,16 @@
# specific language governing permissions and limitations
# under the License.
+{
+ <Arrow C++>:Library initialization
+ Memcheck:Cond
+ ...
+ obj:*arrow*
+ ...
+ fun:call_init*
+ fun:_dl_init
+}
+
{
<jemalloc>:Thread locals don't appear to be freed
Memcheck:Leak