[BUG] Building main fails due to rmm linking error in test suite
envgap__NVIDIA__cudf-23348
01 / FAILURE SIGNATURE
As reported upstream
memory_resource_utilities.cpp:(.text.unlikely+0x142): undefined reference to `rmm::bad_alloc::bad_alloc(char const*)'
Not a benchmark task.
- In a clean container the reported failure did not reproduce, or the known fix did not make the project run.
02 / ENVIRONMENT RECIPE
- Base commit
09b08da7db623241d88a7907d1be94fae0ea5858- Manifest
cpp/CMakeLists.txt- Reproduce
Awaiting issue-specific recipe- Run under trace
Awaiting a meaningful runtime command
03 / ORIGINAL ISSUE TEXT
NVIDIA/cudf #23348 · read the original issue
**Describe the bug**
Building cuDF from source on `main` fails. This originally was a CI failure on one of my PRs (https://github.com/rapidsai/cudf/pull/23075) that I realized was not correlated to the work I had done on that PR.
**Steps/Code to reproduce bug**
On the main branch,
```
clean-cudf-cpp
build-cudf-cpp
```
The build progresses smoothly till we try to link the test executables. Then, all of them fail with the following error message:
```
: && /usr/bin/g++ -O3 -DNDEBUG -Wl,--dependency-file=tests/CMakeFiles/TIMESTAMPS_TEST.dir/link.d CMakeFiles/cudftestutil_objects.dir/tests/io/metadata_utilities.cpp.o CMakeFiles/cudftestutil_objects.dir/tests/utilities/column_utilities.cu.o CMakeFiles/cudftestutil_objects.dir/tests/utilities/debug_utilities.cu.o CMakeFiles/cudftestutil_objects.dir/tests/utilities/memory_resource_utilities.cpp.o CMakeFiles/cudftestutil_objects.dir/tests/utilities/random_seed.cpp.o CMakeFiles/cudftestutil_objects.dir/tests/utilities/table_utilities.cu.o CMakeFiles/cudftestutil_objects.dir/tests/utilities/tdigest_utilities.cpp.o tests/CMakeFiles/TIMESTAMPS_TEST.dir/wrappers/timestamps_test.cu.o -o gtests/TIMESTAMPS_TEST -L/usr/local/cuda/targets/x86_64-linux/lib -Wl,-rpath,/usr/local/cuda/targets/x86_64-linux/lib:/home/coder/cudf/cpp/build/pip/cuda-13.3/release:/home/coder/.local/share/venvs/rapids/lib/python3.14/site-packages/rapids_logger/lib64: /usr/local/cuda-13.3/targets/x86_64-linux/lib/libcudart_static.a lib/libgmock_main.a lib/libgmock.a lib/libgtest_main.a lib/libgtest.a libcudftest_default_stream.so libcudf.so /usr/local/cuda-13.3/targets/x86_64-linux/lib/libcudart_static.a /usr/lib/x86_64-linux-gnu/librt.a /home/coder/.local/share/venvs/rapids/lib/python3.14/site-packages/rapids_logger/lib64/librapids_logger.so -ldl -lcudadevrt -lcudart_static -lrt -lpthread -ldl && :
/usr/bin/ld: CMakeFiles/cudftestutil_objects.dir/tests/utilities/memory_resource_utilities.cpp.o: in function `std::_Function_handler<void* (unsigned long, rmm::cuda_stream_view, void*), cudf::test::memory_resource_test_harness::memory_resource_test_harness(cuda::mr::__4::__version_bump_ver4_::resource_ref<cuda::mr::__4::device_accessible>)::{lambda(unsigned long, cuda::__4::stream_ref, void*)#1}>::_M_invoke(std::_Any_data const&, unsigned long&&, rmm::cuda_stream_view&&, void*&&)':
memory_resource_utilities.cpp:(.text.unlikely+0x142): undefined reference to `rmm::bad_alloc::bad_alloc(char const*)'
collect2: error: ld returned 1 exit status
```
**Expected behavior**
The build should complete successfully on `main`.
**Environment overview (please complete the following information)**
- Environment location: devcontainer
- Method of cuDF install: from source
**Environment details**
<details><summary>Click here to see environment details</summary><pre>
**git***
commit fb868991f40187f840e2ffd5d4d0ab7ec98e1136 (HEAD -> main, origin/main, origin/HEAD)
Author: Yunsong Wang <12716979+PointKernel@users.noreply.github.com>
Date: Mon Jul 20 13:45:16 2026 -0700
Remove redundant type dispatch from column contains (#23282)
This PR removes the redundant `type_dispatcher` calls from `cudf::contains(column_view, column_view)`.
The non-dictionary dispatch did not use the dispatched C++ type: every supported cuDF type instantiated the same type-erased table contains path. Dictionary columns are the only exception because their keys must be normalized before comparing their indices. This PR handles that exception with a direct `DICTIONARY32` check and sends all other columns to the shared type-erased implementation.
In an uncached CUDA 13.0 build, this reduces the compile time for `contains_column.cu` from 67.9 seconds to 23.9 seconds and the object size from 360,392 bytes to 268,224 bytes.
Authors:
- Yunsong Wang (https://github.com/PointKernel)
Approvers:
- David Wendt (https://github.com/davidwendt)
- Bradley Dice (https://github.com/bdice)
URL: https://github.com/rapidsai/cudf/pull/23282
**git submodules***
***OS Information***
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=24.04
DISTRIB_CODENAME=noble
DISTRIB_DESCRIPTION="Ubuntu 24.04.4 LTS"
PRETTY_NAME="Ubuntu 24.04.4 LTS"
NAME="Ubuntu"
VERSION_ID="24.04"
VERSION="24.04.4 LTS (Noble Numbat)"
VERSION_CODENAME=noble
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=noble
LOGO=ubuntu-logo
Linux 3cbfeedb5271 6.8.0-87-generic #88-Ubuntu SMP PREEMPT_DYNAMIC Sat Oct 11 09:28:41 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
***GPU Information***
Mon Jul 20 21:18:50 2026
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 580.105.08 Driver Version: 580.105.08 CUDA Version: 13.0 |
+-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA A100 80GB PCIe On | 00000000:01:00.0 Off | 0 |
| N/A 43C P0 54W / 300W | 0MiB / 81920MiB | 0% Default |
| | | Disabled |
+-----------------------------------------+------------------------+----------------------+
| 1 NVIDIA A100 80GB PCIe On | 00000000:23:00.0 Off | 0 |
| N/A 44C P0 59W / 300W | 0MiB / 81920MiB | 0% Default |
| | | Disabled |
+-----------------------------------------+------------------------+----------------------+
| 2 NVIDIA A100 80GB PCIe On | 00000000:41:00.0 Off | 0 |
| N/A 46C P0 58W / 300W | 0MiB / 81920MiB | 0% Default |
| | | Disabled |
+-----------------------------------------+------------------------+----------------------+
| 3 NVIDIA A100 80GB PCIe On | 00000000:61:00.0 Off | 0 |
| N/A 43C P0 54W / 300W | 0MiB / 81920MiB | 0% Default |
| | | Disabled |
+-----------------------------------------+------------------------+----------------------+
| 4 NVIDIA A100 80GB PCIe On | 00000000:81:00.0 Off | 0 |
| N/A 47C P0 57W / 300W | 0MiB / 81920MiB | 0% Default |
| | | Disabled |
+-----------------------------------------+------------------------+----------------------+
| 5 NVIDIA A100 80GB PCIe On | 00000000:A1:00.0 Off | 0 |
| N/A 45C P0 60W / 300W | 0MiB / 81920MiB | 0% Default |
| | | Disabled |
+-----------------------------------------+------------------------+----------------------+
| 6 NVIDIA A100 80GB PCIe On | 00000000:C1:00.0 Off | 0 |
| N/A 46C P0 61W / 300W | 0MiB / 81920MiB | 0% Default |
| | | Disabled |
+-----------------------------------------+------------------------+----------------------+
| 7 NVIDIA A100 80GB PCIe On | 00000000:E1:00.0 Off | 0 |
| N/A 46C P0 60W / 300W | 0MiB / 81920MiB | 0% Default |
| | | Disabled |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| No running processes found |
+-----------------------------------------------------------------------------------------+
***CPU***
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Address sizes: 43 bits physical, 48 bits virtual
Byte Order: Little Endian
CPU(s): 128
On-line CPU(s) list: 0-127
Vendor ID: AuthenticAMD
Model name: AMD EPYC 7742 64-Core Processor
CPU family: 23
Model: 49
Thread(s) per core: 1
Core(s) per socket: 64
Socket(s): 2
Stepping: 0
Frequency boost: enabled
CPU(s) scaling MHz: 69%
CPU max MHz: 2250.0000
CPU min MHz: 1500.0000
BogoMIPS: 4500.00
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate ssbd mba ibrs ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 cqm rdt_a rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local clzero irperf xsaveerptr rdpru wbnoinvd arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif v_spec_ctrl umip rdpid overflow_recov succor smca sev sev_es ibpb_exit_to_user
Virtualization: AMD-V
L1d cache: 4 MiB (128 instances)
L1i cache: 4 MiB (128 instances)
L2 cache: 64 MiB (128 instances)
L3 cache: 512 MiB (32 instances)
NUMA node(s): 2
NUMA node0 CPU(s): 0-63
NUMA node1 CPU(s): 64-127
Vulnerability Gather data sampling: Not affected
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Mmio stale data: Not affected
Vulnerability Reg file data sampling: Not affected
Vulnerability Retbleed: Mitigation; untrained return thunk; SMT disabled
Vulnerability Spec rstack overflow: Mitigation; SMT disabled
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Vulnerability Spectre v2: Mitigation; Retpolines; IBPB conditional; STIBP disabled; RSB filling; PBRSB-eIBRS Not affected; BHI Not affected
Vulnerability Srbds: Not affected
Vulnerability Tsx async abort: Not affected
Vulnerability Vmscape: Mitigation; IBPB before exit to userspace
***CMake***
/home/coder/.local/share/venvs/rapids/bin/cmake
cmake version 4.3.4
CMake suite maintained and supported by Kitware (kitware.com/cmake).
***g++***
/usr/bin/g++
g++ (Ubuntu 14.3.0-12ubuntu1~24~ppa1) 14.3.0
Copyright (C) 2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
***nvcc***
/usr/local/cuda/bin/nvcc
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2026 NVIDIA Corporation
Built on Fri_Apr_24_07:22:02_PM_PDT_2026
Cuda compilation tools, release 13.3, V13.3.33
Build cuda_13.3.r13.3/compiler.37862127_0
***Python***
/home/coder/.local/share/venvs/rapids/bin/python
Python 3.14.6
***Environment Variables***
PATH : /home/coder/.vscode-server/data/User/globalStorage/github.copilot-chat/debugCommand:/home/coder/.vscode-server/data/User/globalStorage/github.copilot-chat/copilotCli:/home/coder/.vscode-server/extensions/vadimcn.vscode-lldb-1.12.2/bin:/vscode/vscode-server/bin/linux-x64/fcf604774b9f2674b473065736ee75077e256353/bin/remote-cli:/home/coder/.local/bin:/home/coder/.local/share/venvs/rapids/bin:/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/python/current/bin:/usr/local/py-utils/bin:/usr/local/jupyter:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/coder/.vscode-server/extensions/ms-python.debugpy-2026.6.0-linux-x64/bundled/scripts/noConfigScripts
LD_LIBRARY_PATH : /usr/local/nvidia/lib:/usr/local/nvidia/lib64
NUMBAPRO_NVVM :
NUMBAPRO_LIBDEVICE :
CONDA_PREFIX :
PYTHON_PATH : /usr/local/python/current
conda not found
***pip packages***
/home/coder/.local/share/venvs/rapids/bin/pip
Package Version
-------------------------------- -----------
aiobotocore 2.26.0
aiohappyeyeballs 2.6.2
aiohttp 3.14.1
aioitertools 0.13.0
aiosignal 1.4.0
anyio 4.14.0
argon2-cffi 25.1.0
argon2-cffi-bindings 25.1.0
arrow 1.4.0
asttokens 3.0.1
async-lru 2.3.0
attrs 26.1.0
babel 2.18.0
beautifulsoup4 4.15.0
bleach 6.4.0
boto3 1.41.5
botocore 1.41.5
cachetools 7.1.4
certifi 2026.6.17
cffi 2.0.0
cfgv 3.5.0
charset-normalizer 3.4.7
click 8.4.1
cloudpickle 3.1.2
cmake 4.3.4
colorama 0.4.6
comm 0.2.3
confluent-kafka 2.14.2
coverage 7.14.3
cramjam 2.12.0rc1
cuda-bindings 13.3.1
cuda-core 1.0.1
cuda-pathfinder 1.5.5
cuda-python 13.3.1
cuda-toolkit 13.3.0
cupy-cuda13x 14.1.1
Cython 3.2.6
dask 2026.3.0
dask-cuda 26.8.0a10
debugpy 1.8.21
decopatch 1.4.10
decorator 5.3.1
defusedxml 0.8.0rc2
distlib 0.4.3
distributed 2026.3.0
et_xmlfile 2.0.0
execnet 2.1.2
executing 2.2.1
fastavro 1.12.2
fastjsonschema 2.21.2
filelock 3.29.4
fqdn 1.5.1
frozenlist 1.8.0
fsspec 2026.6.0
h11 0.16.0
httpcore 1.0.9
httpx 0.28.1
hypothesis 6.155.7
identify 2.6.19
idna 3.18
iniconfig 2.3.0
ipykernel 7.3.0
ipython 9.15.0
ipython_pygments_lexers 1.1.1
isoduration 20.11.0
jedi 0.20.0
Jinja2 3.1.6
jmespath 1.1.0
json5 0.15.0
jsonpointer 3.1.1
jsonschema 4.26.0
jsonschema-specifications 2025.9.1
jupyter_builder 1.0.2
jupyter_client 8.9.1
jupyter_core 5.9.1
jupyter-events 0.12.1
jupyter-lsp 2.3.1
jupyter_server 2.20.0
jupyter_server_terminals 0.5.4
jupyterlab 4.6.0
jupyterlab_pygments 0.3.0
jupyterlab_server 2.28.0
lark 1.3.1
libkvikio-cu13 26.8.0a22
librapidsmpf-cu13 26.8.0a57
librmm-cu13 26.8.0a44
libucx-cu13 1.19.0
libucxx-cu13 0.51.0a37
llvmlite 0.46.0
locket 1.0.0
makefun 1.16.0
markdown-it-py 4.2.0
MarkupSafe 3.0.3
matplotlib-inline 0.2.2
mdurl 0.1.2
mistune 3.3.2
mmh3 5.2.1
msgpack 1.2.1
multidict 6.7.1
nanoarrow 0.8.0
nbclient 0.11.0
nbconvert 7.17.1
nbformat 5.10.4
nest-asyncio2 1.7.2
nodeenv 1.10.0
notebook 7.6.0
notebook_shim 0.2.4
numba 0.64.0
numba-cuda 0.30.3
numba_cuda_mlir 0.4.0
numpy 2.4.6
nvidia-cuda-cccl 13.3.3.3.1
nvidia-cuda-crt 13.3.33
nvidia-cuda-nvcc 13.3.33
nvidia-cuda-nvrtc 13.3.33
nvidia-cuda-runtime 13.3.29
nvidia-cufile 1.18.0.66
nvidia-ml-py 13.610.43
nvidia-nvfatbin 13.3.29
nvidia-nvjitlink 13.3.33
nvidia-nvvm 13.3.33
nvtx 0.2.15
openpyxl 3.1.5
packaging 26.2
pandas 3.0.4
pandocfilters 1.5.1
parso 0.8.7
partd 1.4.2
pathspec 1.1.1
pexpect 4.9.0
pip 26.1.2
platformdirs 4.10.0
pluggy 1.6.0
polars 1.41.2
polars-runtime-32 1.41.2
pre_commit 4.6.0
prometheus_client 0.25.0
prompt_toolkit 3.0.52
propcache 0.5.2
protobuf 7.35.1
psutil 7.2.2
ptyprocess 0.7.0
pure_eval 0.2.3
py-cpuinfo 9.0.0
pyarrow 23.0.1
pycparser 3.0
Pygments 2.20.0
pytest 9.0.3
pytest-benchmark 5.2.3
pytest-cases 3.10.1
pytest-cov 7.1.0
pytest_httpserver 1.1.5
pytest-rerunfailures 16.3
pytest-timeout 2.4.0
pytest-xdist 3.8.0
python-dateutil 2.9.0.post0
python-discovery 1.4.2
python-json-logger 4.1.0
PyYAML 6.0.3
pyzmq 27.1.0
rapids-build-backend 0.4.2
rapids-dask-dependency 26.8.0a3
rapids-dependency-file-generator 1.21.0
rapids-logger 0.2.3
rapidsmpf-cu13 26.8.0a57
ray 2.55.1
referencing 0.37.0
requests 2.34.2
rfc3339-validator 0.1.4
rfc3986-validator 0.1.1
rfc3987-syntax 1.1.0
rich 15.0.0
rmm-cu13 26.8.0a44
rpds-py 2026.5.1
s3fs 2026.6.0
s3transfer 0.15.0
scikit_build_core 0.12.2
scipy 1.18.0
Send2Trash 2.1.0
setuptools 82.0.1
six 1.17.0
sortedcontainers 2.4.0
soupsieve 2.8.4
stack-data 0.6.3
streamz 0.6.6
structlog 26.1.0
tabulate 0.10.0
tblib 3.2.2
terminado 0.18.1
tinycss2 1.5.1
tomlkit 0.15.0
toolz 1.1.0
tornado 6.5.7
traitlets 5.15.1
typing_extensions 4.16.0rc2
tzdata 2026.2
ucxx-cu13 0.51.0a37
uri-template 1.3.0
urllib3 2.7.0
virtualenv 21.5.1
wcwidth 0.8.1
webcolors 25.10.0
webencodings 0.5.1
websocket-client 1.9.0
Werkzeug 3.1.8
wheel 0.47.0
wrapt 1.17.4rc1
xxhash 3.8.0
yarl 1.24.2
zict 3.0.0
zstandard 0.25.0
</pre></details>
04 / LABELS
Labels from the report text only; not yet run
No supported category has been assigned.
Label rules and the text that matched
[]