Skip to content

[BUG] Invalid memory read in cudf::io::orc::gpu::gpuDecodeOrcColumnData #13570

@davidwendt

Description

@davidwendt

The nightly memcheck tests found an invalid global device memory read in cudf::io::orc::gpu::gpuDecodeOrcColumnData

========= Invalid __global__ read of size 1 bytes
=========     at 0x15e0 in void cudf::io::orc::gpu::gpuDecodeOrcColumnData<(int)1024>(cudf::io::orc::gpu::ColumnDesc *, cudf::io::orc::gpu::DictionaryEntry *, cudf::table_device_view, cudf::detail::base_2dspan<cudf::io::orc::gpu::RowGroup, cudf::device_span>, unsigned long, unsigned int, unsigned long, int *)
=========     by thread (13,0,0) in block (0,0,0)
=========     Address 0x7f25a0200c7a is out of bounds
=========     and is 1 bytes after the nearest allocation at 0x7f25a0200c00 of size 122 bytes
=========     Saved host backtrace up to driver entry point at kernel launch time
=========     Host Frame: [0x304e32]
=========                in /usr/lib/x86_64-linux-gnu/libcuda.so.1
=========     Host Frame: [0x1488c]
=========                in /opt/conda/envs/test/bin/gtests/libcudf/../../../lib/libcudart.so.11.0
=========     Host Frame:cudaLaunchKernel [0x6c318]
=========                in /opt/conda/envs/test/bin/gtests/libcudf/../../../lib/libcudart.so.11.0
=========     Host Frame:cudf::io::orc::gpu::DecodeOrcColumnData(cudf::io::orc::gpu::ColumnDesc*, cudf::io::orc::gpu::DictionaryEntry*, cudf::detail::base_2dspan<cudf::io::orc::gpu::RowGroup, cudf::device_span>, unsigned int, unsigned int, unsigned long, cudf::table_device_view, unsigned int, unsigned int, unsigned long, int*, rmm::cuda_stream_view) [0x1521efd]
=========                in /opt/conda/envs/test/bin/gtests/libcudf/../../../lib/libcudf.so
=========     Host Frame:cudf::io::detail::orc::reader::impl::decode_stream_data(cudf::detail::hostdevice_2dvector<cudf::io::orc::gpu::ColumnDesc>&, unsigned long, unsigned long, cudf::table_device_view, cudf::detail::hostdevice_2dvector<cudf::io::orc::gpu::RowGroup>&, unsigned long, std::vector<cudf::io::detail::column_buffer, std::allocator<cudf::io::detail::column_buffer> >&, unsigned long, rmm::cuda_stream_view) [0x15134c4]
=========                in /opt/conda/envs/test/bin/gtests/libcudf/../../../lib/libcudf.so
=========     Host Frame:cudf::io::detail::orc::reader::impl::read(long, std::optional<int>, std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > const&, rmm::cuda_stream_view) [0x151a40b]
=========                in /opt/conda/envs/test/bin/gtests/libcudf/../../../lib/libcudf.so
=========     Host Frame:cudf::io::detail::orc::reader::read(cudf::io::orc_reader_options const&, rmm::cuda_stream_view) [0x151a808]
=========                in /opt/conda/envs/test/bin/gtests/libcudf/../../../lib/libcudf.so
=========     Host Frame:cudf::io::read_orc(cudf::io::orc_reader_options const&, rmm::mr::device_memory_resource*) [0x1474e97]
=========                in /opt/conda/envs/test/bin/gtests/libcudf/../../../lib/libcudf.so
...

The error can be recreated using the ORC_TEST as follows:

compute-sanitizer --tool memcheck gtests/ORC_TEST --gtest_filter=OrcWriterNumericTypeTest/0.SingleColumn --rmm_mode=cuda 

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingcuIOcuIO issuelibcudfAffects libcudf (C++/CUDA) code.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions