stenlarsson commented on issue #35819: URL: https://github.com/apache/arrow/issues/35819#issuecomment-1571631187
It was harder to make it crash with `GC.disable` but I managed to do it in my macOS development environment. I don't think you can install debug symbols with Homebrew, sorry. ``` * thread #11, stop reason = EXC_BAD_ACCESS (code=1, address=0x31d4d0020) * frame #0: 0x0000000129932f74 libarrow.1200.0.0.dylib`arrow::util::TempVectorStack::alloc(unsigned int, unsigned char**, int*) + 120 frame #1: 0x0000000129926afc libarrow.1200.0.0.dylib`arrow::compute::KeyCompare::CompareColumnsToRows(unsigned int, unsigned short const*, unsigned int const*, arrow::compute::LightContext*, unsigned int*, unsigned short*, std::__1::vector<arrow::compute::KeyColumnArray, std::__1::allocator<arrow::compute::KeyColumnArray> > const&, arrow::compute::RowTableImpl const&, bool, unsigned char*) + 132 frame #2: 0x000000012808a230 libarrow_acero.1200.0.0.dylib`arrow::acero::RowArray::Compare(arrow::compute::ExecBatch const&, int, int, int, unsigned short const*, unsigned int const*, unsigned int*, unsigned short*, long long, arrow::util::TempVectorStack*, std::__1::vector<arrow::compute::KeyColumnArray, std::__1::allocator<arrow::compute::KeyColumnArray> >&, unsigned char*) + 144 frame #3: 0x000000012808c91c libarrow_acero.1200.0.0.dylib`arrow::acero::SwissTableWithKeys::EqualCallback(int, unsigned short const*, unsigned int const*, unsigned int*, unsigned short*, void*) + 260 frame #4: 0x0000000129871cb4 libarrow.1200.0.0.dylib`std::__1::function<void (int, unsigned short const*, unsigned int const*, unsigned int*, unsigned short*, void*)>::operator()(int, unsigned short const*, unsigned int const*, unsigned int*, unsigned short*, void*) const + 72 frame #5: 0x0000000129872004 libarrow.1200.0.0.dylib`arrow::compute::SwissTable::find(int, unsigned int const*, unsigned char*, unsigned char const*, unsigned int*, arrow::util::TempVectorStack*, std::__1::function<void (int, unsigned short const*, unsigned int const*, unsigned int*, unsigned short*, void*)> const&, void*) const + 832 frame #6: 0x000000012808ce38 libarrow_acero.1200.0.0.dylib`arrow::acero::SwissTableWithKeys::Map(arrow::acero::SwissTableWithKeys::Input*, bool, unsigned int const*, unsigned char*, unsigned int*) + 528 frame #7: 0x000000012808cc08 libarrow_acero.1200.0.0.dylib`arrow::acero::SwissTableWithKeys::MapReadOnly(arrow::acero::SwissTableWithKeys::Input*, unsigned int const*, unsigned char*, unsigned int*) + 36 frame #8: 0x000000012808f638 libarrow_acero.1200.0.0.dylib`arrow::acero::JoinProbeProcessor::OnNextBatch(long long, arrow::compute::ExecBatch const&, arrow::util::TempVectorStack*, std::__1::vector<arrow::compute::KeyColumnArray, std::__1::allocator<arrow::compute::KeyColumnArray> >*) + 560 frame #9: 0x0000000128091170 libarrow_acero.1200.0.0.dylib`arrow::acero::SwissJoin::ProbeSingleBatch(unsigned long, arrow::compute::ExecBatch) + 540 frame #10: 0x000000012806bc1c libarrow_acero.1200.0.0.dylib`arrow::acero::HashJoinNode::OnProbeSideBatch(unsigned long, arrow::compute::ExecBatch) + 216 frame #11: 0x000000012806ae40 libarrow_acero.1200.0.0.dylib`arrow::acero::HashJoinNode::InputReceived(arrow::acero::ExecNode*, arrow::compute::ExecBatch) + 364 frame #12: 0x000000012806e2d4 libarrow_acero.1200.0.0.dylib`arrow::acero::HashJoinNode::OutputBatchCallback(arrow::compute::ExecBatch) + 100 frame #13: 0x000000012806e1e0 libarrow_acero.1200.0.0.dylib`arrow::acero::HashJoinNode::Init()::'lambda'(long long, arrow::compute::ExecBatch)::operator()(long long, arrow::compute::ExecBatch) const + 116 frame #14: 0x000000012806e0e0 libarrow_acero.1200.0.0.dylib`decltype(std::declval<arrow::acero::HashJoinNode::Init()::'lambda'(long long, arrow::compute::ExecBatch)&>()(std::declval<long long>(), std::declval<arrow::compute::ExecBatch>())) std::__1::__invoke[abi:v15006]<arrow::acero::HashJoinNode::Init()::'lambda'(long long, arrow::compute::ExecBatch)&, long long, arrow::compute::ExecBatch>(arrow::acero::HashJoinNode::Init()::'lambda'(long long, arrow::compute::ExecBatch)&, long long&&, arrow::compute::ExecBatch&&) + 84 frame #15: 0x000000012808f8f4 libarrow_acero.1200.0.0.dylib`arrow::acero::JoinProbeProcessor::OnNextBatch(long long, arrow::compute::ExecBatch const&, arrow::util::TempVectorStack*, std::__1::vector<arrow::compute::KeyColumnArray, std::__1::allocator<arrow::compute::KeyColumnArray> >*) + 1260 frame #16: 0x0000000128091170 libarrow_acero.1200.0.0.dylib`arrow::acero::SwissJoin::ProbeSingleBatch(unsigned long, arrow::compute::ExecBatch) + 540 frame #17: 0x000000012806bc1c libarrow_acero.1200.0.0.dylib`arrow::acero::HashJoinNode::OnProbeSideBatch(unsigned long, arrow::compute::ExecBatch) + 216 frame #18: 0x000000012806ae40 libarrow_acero.1200.0.0.dylib`arrow::acero::HashJoinNode::InputReceived(arrow::acero::ExecNode*, arrow::compute::ExecBatch) + 364 frame #19: 0x000000012806e2d4 libarrow_acero.1200.0.0.dylib`arrow::acero::HashJoinNode::OutputBatchCallback(arrow::compute::ExecBatch) + 100 frame #20: 0x000000012806e1e0 libarrow_acero.1200.0.0.dylib`arrow::acero::HashJoinNode::Init()::'lambda'(long long, arrow::compute::ExecBatch)::operator()(long long, arrow::compute::ExecBatch) const + 116 frame #21: 0x000000012806e0e0 libarrow_acero.1200.0.0.dylib`decltype(std::declval<arrow::acero::HashJoinNode::Init()::'lambda'(long long, arrow::compute::ExecBatch)&>()(std::declval<long long>(), std::declval<arrow::compute::ExecBatch>())) std::__1::__invoke[abi:v15006]<arrow::acero::HashJoinNode::Init()::'lambda'(long long, arrow::compute::ExecBatch)&, long long, arrow::compute::ExecBatch>(arrow::acero::HashJoinNode::Init()::'lambda'(long long, arrow::compute::ExecBatch)&, long long&&, arrow::compute::ExecBatch&&) + 84 frame #22: 0x000000012808f8f4 libarrow_acero.1200.0.0.dylib`arrow::acero::JoinProbeProcessor::OnNextBatch(long long, arrow::compute::ExecBatch const&, arrow::util::TempVectorStack*, std::__1::vector<arrow::compute::KeyColumnArray, std::__1::allocator<arrow::compute::KeyColumnArray> >*) + 1260 frame #23: 0x0000000128091170 libarrow_acero.1200.0.0.dylib`arrow::acero::SwissJoin::ProbeSingleBatch(unsigned long, arrow::compute::ExecBatch) + 540 frame #24: 0x000000012806bc1c libarrow_acero.1200.0.0.dylib`arrow::acero::HashJoinNode::OnProbeSideBatch(unsigned long, arrow::compute::ExecBatch) + 216 frame #25: 0x000000012806ae40 libarrow_acero.1200.0.0.dylib`arrow::acero::HashJoinNode::InputReceived(arrow::acero::ExecNode*, arrow::compute::ExecBatch) + 364 frame #26: 0x000000012806e2d4 libarrow_acero.1200.0.0.dylib`arrow::acero::HashJoinNode::OutputBatchCallback(arrow::compute::ExecBatch) + 100 frame #27: 0x000000012806e1e0 libarrow_acero.1200.0.0.dylib`arrow::acero::HashJoinNode::Init()::'lambda'(long long, arrow::compute::ExecBatch)::operator()(long long, arrow::compute::ExecBatch) const + 116 frame #28: 0x000000012806e0e0 libarrow_acero.1200.0.0.dylib`decltype(std::declval<arrow::acero::HashJoinNode::Init()::'lambda'(long long, arrow::compute::ExecBatch)&>()(std::declval<long long>(), std::declval<arrow::compute::ExecBatch>())) std::__1::__invoke[abi:v15006]<arrow::acero::HashJoinNode::Init()::'lambda'(long long, arrow::compute::ExecBatch)&, long long, arrow::compute::ExecBatch>(arrow::acero::HashJoinNode::Init()::'lambda'(long long, arrow::compute::ExecBatch)&, long long&&, arrow::compute::ExecBatch&&) + 84 frame #29: 0x00000001280904c8 libarrow_acero.1200.0.0.dylib`arrow::acero::JoinProbeProcessor::OnFinished() + 316 frame #30: 0x0000000128094468 libarrow_acero.1200.0.0.dylib`arrow::acero::SwissJoin::OnScanHashTableFinished() + 52 frame #31: 0x0000000128094d40 libarrow_acero.1200.0.0.dylib`arrow::acero::SwissJoin::StartScanHashTable(long long) + 148 frame #32: 0x0000000128091338 libarrow_acero.1200.0.0.dylib`arrow::acero::SwissJoin::ProbingFinished(unsigned long) + 48 frame #33: 0x000000012806af40 libarrow_acero.1200.0.0.dylib`arrow::acero::HashJoinNode::InputReceived(arrow::acero::ExecNode*, arrow::compute::ExecBatch) + 620 frame #34: 0x00000001280867e0 libarrow_acero.1200.0.0.dylib`std::__1::__function::__func<arrow::acero::(anonymous namespace)::SourceNode::SliceAndDeliverMorsel(arrow::compute::ExecBatch const&)::'lambda'(), std::__1::allocator<arrow::acero::(anonymous namespace)::SourceNode::SliceAndDeliverMorsel(arrow::compute::ExecBatch const&)::'lambda'()>, arrow::Status ()>::operator()() + 500 frame #35: 0x000000012807c940 libarrow_acero.1200.0.0.dylib`std::__1::enable_if<!std::is_void<arrow::Status>::value && !is_future<arrow::Status>::value && (!arrow::Future<arrow::internal::Empty>::is_empty || std::is_same<arrow::Status, arrow::Status>::value), void>::type arrow::detail::ContinueFuture::operator()<std::__1::function<arrow::Status ()>&, arrow::Status, arrow::Future<arrow::internal::Empty> >(arrow::Future<arrow::internal::Empty>, std::__1::function<arrow::Status ()>&) const + 44 frame #36: 0x000000012807c8bc libarrow_acero.1200.0.0.dylib`std::__1::__bind_return<arrow::detail::ContinueFuture, std::__1::tuple<arrow::Future<arrow::internal::Empty>, std::__1::function<arrow::Status ()> >, std::__1::tuple<>, __is_valid_bind_return<arrow::detail::ContinueFuture, std::__1::tuple<arrow::Future<arrow::internal::Empty>, std::__1::function<arrow::Status ()> >, std::__1::tuple<> >::value>::type std::__1::__bind<arrow::detail::ContinueFuture, arrow::Future<arrow::internal::Empty>&, std::__1::function<arrow::Status ()> >::operator()[abi:v15006]<>() + 52 frame #37: 0x0000000129764b18 libarrow.1200.0.0.dylib`void* std::__1::__thread_proxy[abi:v15006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::$_6> >(void*) + 392 frame #38: 0x0000000198153fa8 libsystem_pthread.dylib`_pthread_start + 148 ``` It is still very random, and with `OMP_NUM_THREADS=1` I've never gotten it to crash. -- 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. To unsubscribe, e-mail: github-unsubscr...@arrow.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org