[
https://issues.apache.org/jira/browse/ARROW-18183?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17627030#comment-17627030
]
Yibo Cai commented on ARROW-18183:
----------------------------------
Tested on M1, all "arrow-dataset-scanner-benchmark/scan_alg=1" tests failed
with SIGBUS. "scan_alg=0" tests are okay.
Stack depth is approaching 4000 from the backtrace. Looks there are a call loop
among \{future,async_util\}.\{h,cc\}.
ASAN identified stack overflow, logs attached.
cc [~westonpace]
{code:bash}
# all scan_alg:0 tests are okay, all scan_alg:1 tests cause sigbus
% debug/arrow-dataset-scanner-benchmark --benchmark_filter=".*scan_alg:1.*"
/Users/linux/cyb/arrow/cpp/src/arrow/memory_pool.cc:113: Unsupported backend
'mimalloc' specified in ARROW_DEFAULT_MEMORY_POOL (supported backends are
'jemalloc', 'system')
Unable to determine clock rate from sysctl: hw.cpufrequency: No such file or
directory
This does not affect benchmark measurements, only the metadata output.
2022-11-01T17:02:15+08:00
Running debug/arrow-dataset-scanner-benchmark
Run on (8 X 24.2408 MHz CPU s)
CPU Caches:
L1 Data 64 KiB
L1 Instruction 128 KiB
L2 Unified 4096 KiB (x8)
Load Average: 2.06, 2.81, 2.72
AddressSanitizer:DEADLYSIGNAL
=================================================================
==75674==ERROR: AddressSanitizer: stack-overflow on address 0x00016b9b3fc0 (pc
0x000106b4b3b4 bp 0x000106b4b3a0 sp 0x00016b9b3fa0 T1)
#0 0x106b4b3b4 in __sanitizer::StackDepotBase<__sanitizer::StackDepotNode,
1, 20>::Put(__sanitizer::StackTrace, bool*)+0x4
(libclang_rt.asan_osx_dynamic.dylib:arm64+0x5f3b4)
SUMMARY: AddressSanitizer: stack-overflow
(libclang_rt.asan_osx_dynamic.dylib:arm64+0x5f3b4) in
__sanitizer::StackDepotBase<__sanitizer::StackDepotNode, 1,
20>::Put(__sanitizer::StackTrace, bool*)+0x4
Thread T1 created by T0 here:
#0 0x106b2680c in wrap_pthread_create+0x50
(libclang_rt.asan_osx_dynamic.dylib:arm64+0x3a80c)
#1 0x113b7a408 in std::__1::__libcpp_thread_create(_opaque_pthread_t**,
void* (*)(void*), void*) __threading_support:375
#2 0x113b7a128 in
std::__1::thread::thread<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::$_3,
void>(arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::$_3&&)
thread:309
#3 0x113b67e94 in
std::__1::thread::thread<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::$_3,
void>(arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::$_3&&)
thread:301
#4 0x113b66794 in arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)
thread_pool.cc:412
#5 0x113b68444 in
arrow::internal::ThreadPool::SpawnReal(arrow::internal::TaskHints,
arrow::internal::FnOnce<void ()>, arrow::StopToken,
arrow::internal::FnOnce<void (arrow::Status const&)>&&) thread_pool.cc:448
#6 0x10488dfd8 in
arrow::Result<arrow::Future<std::__1::shared_ptr<arrow::Iterator<std::__1::shared_ptr<arrow::dataset::Fragment>
> > > > arrow::internal::Executor::Submit<arrow::dataset::(anonymous
namespace)::GetFragments(arrow::dataset::Dataset*,
arrow::compute::Expression)::$_0,
arrow::Future<std::__1::shared_ptr<arrow::Iterator<std::__1::shared_ptr<arrow::dataset::Fragment>
> > > >(arrow::internal::TaskHints, arrow::StopToken,
arrow::dataset::(anonymous namespace)::GetFragments(arrow::dataset::Dataset*,
arrow::compute::Expression)::$_0&&) thread_pool.h:167
#7 0x10488be74 in
arrow::Result<arrow::Future<std::__1::shared_ptr<arrow::Iterator<std::__1::shared_ptr<arrow::dataset::Fragment>
> > > > arrow::internal::Executor::Submit<arrow::dataset::(anonymous
namespace)::GetFragments(arrow::dataset::Dataset*,
arrow::compute::Expression)::$_0,
arrow::Future<std::__1::shared_ptr<arrow::Iterator<std::__1::shared_ptr<arrow::dataset::Fragment>
> > > >(arrow::dataset::(anonymous
namespace)::GetFragments(arrow::dataset::Dataset*,
arrow::compute::Expression)::$_0&&) thread_pool.h:193
#8 0x10488ac0c in arrow::dataset::(anonymous
namespace)::GetFragments(arrow::dataset::Dataset*, arrow::compute::Expression)
scan_node.cc:64
#9 0x10488a010 in arrow::dataset::(anonymous
namespace)::ScanNode::StartProducing() scan_node.cc:318
#10 0x113fc43e0 in arrow::compute::(anonymous
namespace)::ExecPlanImpl::StartProducing() exec_plan.cc:183
#11 0x113fc362c in arrow::compute::ExecPlan::StartProducing()
exec_plan.cc:400
#12 0x104462260 in arrow::dataset::MinimalEndToEndScan(unsigned long,
unsigned long, std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> > const&,
std::__1::function<arrow::Result<std::__1::shared_ptr<arrow::compute::ExecNodeOptions>
> (unsigned long, unsigned long)>) scanner_benchmark.cc:159
#13 0x104468ebc in arrow::dataset::MinimalEndToEndBench(benchmark::State&)
scanner_benchmark.cc:272
#14 0x1055dbc8c in benchmark::internal::BenchmarkInstance::Run(long long,
int, benchmark::internal::ThreadTimer*, benchmark::internal::ThreadManager*,
benchmark::internal::PerfCountersMeasurement*) const+0x44
(libbenchmark.1.7.0.dylib:arm64+0xbc8c)
#15 0x1055ed708 in benchmark::internal::(anonymous
namespace)::RunInThread(benchmark::internal::BenchmarkInstance const*, long
long, int, benchmark::internal::ThreadManager*,
benchmark::internal::PerfCountersMeasurement*)+0x58
(libbenchmark.1.7.0.dylib:arm64+0x1d708)
#16 0x1055ed2c8 in
benchmark::internal::BenchmarkRunner::DoNIterations()+0x2c0
(libbenchmark.1.7.0.dylib:arm64+0x1d2c8)
#17 0x1055edfec in
benchmark::internal::BenchmarkRunner::DoOneRepetition()+0xb0
(libbenchmark.1.7.0.dylib:arm64+0x1dfec)
#18 0x1055d4fb8 in
benchmark::RunSpecifiedBenchmarks(benchmark::BenchmarkReporter*,
benchmark::BenchmarkReporter*, std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> >)+0x9f0
(libbenchmark.1.7.0.dylib:arm64+0x4fb8)
#19 0x1055d4564 in benchmark::RunSpecifiedBenchmarks()+0x3c
(libbenchmark.1.7.0.dylib:arm64+0x4564)
#20 0x10556becc in main+0x50 (libbenchmark_main.1.7.0.dylib:arm64+0x3ecc)
#21 0x10562d0f0 in start+0x204 (dyld:arm64+0x50f0)
#22 0xa25d7ffffffffffc (<unknown module>)
==75674==ABORTING
zsh: abort debug/arrow-dataset-scanner-benchmark
--benchmark_filter=".*scan_alg:1.*"
{code}
> cpp-micro benchmarks are failing on mac arm machine
> ---------------------------------------------------
>
> Key: ARROW-18183
> URL: https://issues.apache.org/jira/browse/ARROW-18183
> Project: Apache Arrow
> Issue Type: Bug
> Components: Benchmarking, C++
> Reporter: Elena Henderson
> Priority: Major
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)