diff --git a/conda/environments/all_cuda-118_arch-x86_64.yaml b/conda/environments/all_cuda-118_arch-x86_64.yaml index 9d1f71594a9..dc78bf68dda 100644 --- a/conda/environments/all_cuda-118_arch-x86_64.yaml +++ b/conda/environments/all_cuda-118_arch-x86_64.yaml @@ -62,7 +62,7 @@ dependencies: - numpy>=1.21 - numpydoc - nvcc_linux-64=11.8 -- nvcomp==3.0.5 +- nvcomp==3.0.6 - nvtx>=0.2.1 - packaging - pandas>=2.0,<2.2.2dev0 diff --git a/conda/environments/all_cuda-122_arch-x86_64.yaml b/conda/environments/all_cuda-122_arch-x86_64.yaml index 8585480720e..627cfa7667c 100644 --- a/conda/environments/all_cuda-122_arch-x86_64.yaml +++ b/conda/environments/all_cuda-122_arch-x86_64.yaml @@ -60,7 +60,7 @@ dependencies: - numba>=0.57 - numpy>=1.21 - numpydoc -- nvcomp==3.0.5 +- nvcomp==3.0.6 - nvtx>=0.2.1 - packaging - pandas>=2.0,<2.2.2dev0 diff --git a/conda/recipes/libcudf/conda_build_config.yaml b/conda/recipes/libcudf/conda_build_config.yaml index 603cbd8fc2a..3280ddf185a 100644 --- a/conda/recipes/libcudf/conda_build_config.yaml +++ b/conda/recipes/libcudf/conda_build_config.yaml @@ -38,7 +38,7 @@ spdlog_version: - ">=1.12.0,<1.13" nvcomp_version: - - "=3.0.5" + - "=3.0.6" zlib_version: - ">=1.2.13" diff --git a/dependencies.yaml b/dependencies.yaml index c43dab2c7bf..4011bd764e1 100644 --- a/dependencies.yaml +++ b/dependencies.yaml @@ -243,7 +243,7 @@ dependencies: - libkvikio==24.4.* - librdkafka>=1.9.0,<1.10.0a0 # Align nvcomp version with rapids-cmake - - nvcomp==3.0.5 + - nvcomp==3.0.6 - spdlog>=1.12.0,<1.13 build_wheels: common: diff --git a/python/cudf/cudf/tests/data/parquet/zstd_huff_tables_bug.parquet b/python/cudf/cudf/tests/data/parquet/zstd_huff_tables_bug.parquet new file mode 100644 index 00000000000..4fb66fd86fc Binary files /dev/null and b/python/cudf/cudf/tests/data/parquet/zstd_huff_tables_bug.parquet differ diff --git a/python/cudf/cudf/tests/test_parquet.py b/python/cudf/cudf/tests/test_parquet.py index 9bd014ce59f..0d83bd7ebe8 100644 --- a/python/cudf/cudf/tests/test_parquet.py +++ b/python/cudf/cudf/tests/test_parquet.py @@ -3132,3 +3132,14 @@ def test_writer_lz4(): got = pd.read_parquet(buffer) assert_eq(gdf, got) + + +def test_parquet_reader_zstd_huff_tables(datadir): + # Ensure that this zstd-compressed file does not overrun buffers. The + # problem was fixed in nvcomp 3.0.6. + # See https://github.com/rapidsai/cudf/issues/15096 + fname = datadir / "zstd_huff_tables_bug.parquet" + + expected = pa.parquet.read_table(fname).to_pandas() + actual = cudf.read_parquet(fname) + assert_eq(actual, expected)