alamb commented on pull request #8598: URL: https://github.com/apache/arrow/pull/8598#issuecomment-726749085
Some additional data: I ran the tests under valgrind (as described in https://github.com/apache/arrow/pull/8645#issuecomment-726736494) on this branch after rebasing against master. This branch appears to have the same errors as reported on master (It did not introduce anything new, but neither does it fix the issue that https://github.com/apache/arrow/pull/8645 appears to do): I did: ``` git checkout ARROW-10500-refactor-bitslice-iterator git rebase apache/master PARQUET_TEST_DATA=`pwd`/../../cpp/submodules/parquet-testing/data ARROW_TEST_DATA=`pwd`/../../testing/data ~/Software/valgrind/bin/valgrind /home/andrew/Software/arrow/rust/target/debug/deps/arrow-175722a3038eb7da --test-threads=1 ``` Which then reported: ``` test compute::kernels::cast::tests::test_cast_dict_to_dict_bad_index_value_utf8 ... ==11668== Invalid read of size 1 ==11668== at 0x2D63A2: arrow::util::bit_util::set_bits_raw (bit_util.rs:128) ==11668== by 0x6C1C49: <arrow::array::builder::BufferBuilder<T> as arrow::array::builder::BufferBuilderTrait<T>>::append_n (builder.rs:339) ==11668== by 0x6E9054: arrow::array::builder::PrimitiveBuilder<T>::append_slice (builder.rs:591) ==11668== by 0x8CA316: arrow::array::builder::StringBuilder::append_value (builder.rs:1781) ==11668== by 0x75DEFB: arrow::array::builder::StringDictionaryBuilder<K>::append (builder.rs:2435) ==11668== by 0x38CFB3: arrow::compute::kernels::cast::tests::test_cast_dict_to_dict_bad_index_value_utf8 (cast.rs:2612) ==11668== by 0x347D69: arrow::compute::kernels::cast::tests::test_cast_dict_to_dict_bad_index_value_utf8::{{closure}} (cast.rs:2598) ==11668== by 0xAD460D: core::ops::function::FnOnce::call_once (function.rs:232) ==11668== by 0xB9EEB5: call_once<(),FnOnce<()>> (boxed.rs:1008) ==11668== by 0xB9EEB5: call_once<(),alloc::boxed::Box<FnOnce<()>>> (panic.rs:318) ==11668== by 0xB9EEB5: do_call<std::panic::AssertUnwindSafe<alloc::boxed::Box<FnOnce<()>>>,()> (panicking.rs:331) ==11668== by 0xB9EEB5: try<(),std::panic::AssertUnwindSafe<alloc::boxed::Box<FnOnce<()>>>> (panicking.rs:274) ==11668== by 0xB9EEB5: catch_unwind<std::panic::AssertUnwindSafe<alloc::boxed::Box<FnOnce<()>>>,()> (panic.rs:394) ==11668== by 0xB9EEB5: run_test_in_process (lib.rs:541) ==11668== by 0xB9EEB5: test::run_test::run_test_inner::{{closure}} (lib.rs:450) ==11668== by 0xB9E548: test::run_test::run_test_inner (lib.rs:475) ==11668== by 0xB9C739: test::run_test (lib.rs:505) ==11668== by 0xB8A528: run_tests<closure-2> (lib.rs:284) ==11668== by 0xB8A528: test::console::run_tests_console (console.rs:280) ==11668== Address 0x65c1900 is 0 bytes after a block of size 128 alloc'd ==11668== at 0x4C34443: memalign (vg_replace_malloc.c:906) ==11668== by 0x4C34546: posix_memalign (vg_replace_malloc.c:1070) ==11668== by 0xEBC083: aligned_malloc (alloc.rs:95) ==11668== by 0xEBC083: alloc (alloc.rs:22) ==11668== by 0xEBC083: realloc_fallback (alloc.rs:39) ==11668== by 0xEBC083: realloc (alloc.rs:50) ==11668== by 0xEBC083: __rdl_realloc (alloc.rs:320) ==11668== by 0x33E2FC: alloc::alloc::realloc (alloc.rs:124) ==11668== by 0x3FB608: arrow::memory::reallocate (memory.rs:187) ==11668== by 0x2BEFE6: arrow::buffer::MutableBuffer::reserve (buffer.rs:686) ==11668== by 0x6BBD95: <arrow::array::builder::BufferBuilder<T> as arrow::array::builder::BufferBuilderTrait<T>>::reserve (builder.rs:307) ==11668== by 0x6C1AEF: <arrow::array::builder::BufferBuilder<T> as arrow::array::builder::BufferBuilderTrait<T>>::append_n (builder.rs:335) ==11668== by 0x6E9054: arrow::array::builder::PrimitiveBuilder<T>::append_slice (builder.rs:591) ==11668== by 0x8CA316: arrow::array::builder::StringBuilder::append_value (builder.rs:1781) ==11668== by 0x75DEFB: arrow::array::builder::StringDictionaryBuilder<K>::append (builder.rs:2435) ==11668== by 0x38CFB3: arrow::compute::kernels::cast::tests::test_cast_dict_to_dict_bad_index_value_utf8 (cast.rs:2612) ==11668== ==11668== Invalid write of size 1 ==11668== at 0x2D63A4: arrow::util::bit_util::set_bits_raw (bit_util.rs:128) ==11668== by 0x6C1C49: <arrow::array::builder::BufferBuilder<T> as arrow::array::builder::BufferBuilderTrait<T>>::append_n (builder.rs:339) ==11668== by 0x6E9054: arrow::array::builder::PrimitiveBuilder<T>::append_slice (builder.rs:591) ==11668== by 0x8CA316: arrow::array::builder::StringBuilder::append_value (builder.rs:1781) ==11668== by 0x75DEFB: arrow::array::builder::StringDictionaryBuilder<K>::append (builder.rs:2435) ==11668== by 0x38CFB3: arrow::compute::kernels::cast::tests::test_cast_dict_to_dict_bad_index_value_utf8 (cast.rs:2612) ==11668== by 0x347D69: arrow::compute::kernels::cast::tests::test_cast_dict_to_dict_bad_index_value_utf8::{{closure}} (cast.rs:2598) ==11668== by 0xAD460D: core::ops::function::FnOnce::call_once (function.rs:232) ==11668== by 0xB9EEB5: call_once<(),FnOnce<()>> (boxed.rs:1008) ==11668== by 0xB9EEB5: call_once<(),alloc::boxed::Box<FnOnce<()>>> (panic.rs:318) ==11668== by 0xB9EEB5: do_call<std::panic::AssertUnwindSafe<alloc::boxed::Box<FnOnce<()>>>,()> (panicking.rs:331) ==11668== by 0xB9EEB5: try<(),std::panic::AssertUnwindSafe<alloc::boxed::Box<FnOnce<()>>>> (panicking.rs:274) ==11668== by 0xB9EEB5: catch_unwind<std::panic::AssertUnwindSafe<alloc::boxed::Box<FnOnce<()>>>,()> (panic.rs:394) ==11668== by 0xB9EEB5: run_test_in_process (lib.rs:541) ==11668== by 0xB9EEB5: test::run_test::run_test_inner::{{closure}} (lib.rs:450) ==11668== by 0xB9E548: test::run_test::run_test_inner (lib.rs:475) ==11668== by 0xB9C739: test::run_test (lib.rs:505) ==11668== by 0xB8A528: run_tests<closure-2> (lib.rs:284) ==11668== by 0xB8A528: test::console::run_tests_console (console.rs:280) ==11668== Address 0x65c1900 is 0 bytes after a block of size 128 alloc'd ==11668== at 0x4C34443: memalign (vg_replace_malloc.c:906) ==11668== by 0x4C34546: posix_memalign (vg_replace_malloc.c:1070) ==11668== by 0xEBC083: aligned_malloc (alloc.rs:95) ==11668== by 0xEBC083: alloc (alloc.rs:22) ==11668== by 0xEBC083: realloc_fallback (alloc.rs:39) ==11668== by 0xEBC083: realloc (alloc.rs:50) ==11668== by 0xEBC083: __rdl_realloc (alloc.rs:320) ==11668== by 0x33E2FC: alloc::alloc::realloc (alloc.rs:124) ==11668== by 0x3FB608: arrow::memory::reallocate (memory.rs:187) ==11668== by 0x2BEFE6: arrow::buffer::MutableBuffer::reserve (buffer.rs:686) ==11668== by 0x6BBD95: <arrow::array::builder::BufferBuilder<T> as arrow::array::builder::BufferBuilderTrait<T>>::reserve (builder.rs:307) ==11668== by 0x6C1AEF: <arrow::array::builder::BufferBuilder<T> as arrow::array::builder::BufferBuilderTrait<T>>::append_n (builder.rs:335) ==11668== by 0x6E9054: arrow::array::builder::PrimitiveBuilder<T>::append_slice (builder.rs:591) ==11668== by 0x8CA316: arrow::array::builder::StringBuilder::append_value (builder.rs:1781) ==11668== by 0x75DEFB: arrow::array::builder::StringDictionaryBuilder<K>::append (builder.rs:2435) ==11668== by 0x38CFB3: arrow::compute::kernels::cast::tests::test_cast_dict_to_dict_bad_index_value_utf8 (cast.rs:2612) ==11668== .. ==11668== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0) ``` ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org