Skip to content

[C++][R]: gcc-UBSAN errors on CRAN #46394

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
jonkeane opened this issue May 11, 2025 · 1 comment
Closed

[C++][R]: gcc-UBSAN errors on CRAN #46394

jonkeane opened this issue May 11, 2025 · 1 comment

Comments

@jonkeane
Copy link
Member

Describe the bug, including details regarding any error messages, version, and platform.

After our 20.0.0 release, CRAN sent us an email asking to resolve the issue(s) on checks before 2025-05-25.

One issue is with gcc-UBSAN:

``` > # Note that if a timestamp column contains time zones, > # the string "T" `col_types` specification won't work. > # To parse timestamps with time zones, provide a [Schema] to `col_types` > # and specify the time zone in the type object: > tf <- tempfile() > write.csv(data.frame(x = "1970-01-01T12:00:00+12:00"), file = tf, row.names = FALSE) > read_csv_arrow( + tf, + col_types = schema(x = timestamp(unit = "us", timezone = "UTC")) + ) /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/csv/parser.cc:106:7: runtime error: load of value 74, which is not a valid value for type 'bool' #0 0x7f6e2c9ae625 in arrow::csv::(anonymous namespace)::ValueDescWriter::ValueDescWriter(arrow::csv::(anonymous namespace)::ValueDescWriter&&) [clone .cold] (/data/gannet/ripley/R/packages/tests-gcc-SAN/arrow.Rcheck/arrow/libs/arrow.so+0x11dae625) (BuildId: 505b86fb06d4592154b3174f67dd1ca117b95050) #1 0x7f6e3767c2fc in PresizedValueDescWriter /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/csv/parser.cc:197 #2 0x7f6e3767c2fc in construct /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/aligned_storage.h:52 #3 0x7f6e3767c2fc in ConstructValue /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/result.h:448 #4 0x7f6e3767c2fc in Result /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/result.h:180 #5 0x7f6e3767c2fc in Make /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/csv/parser.cc:142 #6 0x7f6e3767c2fc in arrow::Status arrow::csv::BlockParserImpl::ParseSpecialized >(std::vector >, std::allocator > > > const&, bool, unsigned int*) /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/csv/parser.cc:603 #7 0x7f6e376a54aa in arrow::csv::BlockParserImpl::Parse(std::vector >, std::allocator > > > const&, bool, unsigned int*) /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/csv/parser.cc:657 #8 0x7f6e376b1200 in arrow::csv::BlockParser::ParseFinal(std::vector >, std::allocator > > > const&, unsigned int*) /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/csv/parser.cc:702 #9 0x7f6e376b1200 in operator() /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/csv/reader.cc:426 #10 0x7f6e376b425b in Parse /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/csv/reader.cc:731 #11 0x7f6e376b425b in ParseAndInsert /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/csv/reader.cc:792 #12 0x7f6e3772c011 in operator() /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/csv/reader.cc:1069 #13 0x7f6e3772c011 in invoke /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/functional.h:152 #14 0x7f6e2cb18e67 in arrow::internal::FnOnce::operator()() && /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/libarrow/arrow-20.0.0/include/arrow/util/functional.h:140 #15 0x7f6e387176d9 in operator() /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/task_group.cc:114 #16 0x7f6e387176d9 in invoke /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/functional.h:152 #17 0x7f6e387130f9 in arrow::internal::FnOnce::operator()() && /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/functional.h:140 #18 0x7f6e387130f9 in WorkerLoop /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/thread_pool.cc:478 #19 0x7f6e387130f9 in operator() /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/thread_pool.cc:643 #20 0x7f6e387130f9 in __invoke_impl > /usr/local/gcc15/include/c++/15.1.0/bits/invoke.h:63 #21 0x7f6e387130f9 in __invoke > /usr/local/gcc15/include/c++/15.1.0/bits/invoke.h:98 #22 0x7f6e387130f9 in _M_invoke<0> /usr/local/gcc15/include/c++/15.1.0/bits/std_thread.h:303 #23 0x7f6e387130f9 in operator() /usr/local/gcc15/include/c++/15.1.0/bits/std_thread.h:310 #24 0x7f6e387130f9 in _M_run /usr/local/gcc15/include/c++/15.1.0/bits/std_thread.h:255 #25 0x7f6e612e7563 in execute_native_thread_routine (/lib64/libstdc++.so.6+0xe7563) (BuildId: efdde18722aa72a0a779270371aeee5a9f6ddf87) #26 0x7f6e62c5df95 in asan_thread_start(void*) (/lib64/libasan.so.8+0x5df95) (BuildId: a4ad7eb954b390cf00f07fa10952988a41d9fc7a) #27 0x7f6e616a6087 in start_thread (/lib64/libc.so.6+0x98087) (BuildId: c8c3fa52aaee3f5d73b6fd862e39e9d4c010b6ba) #28 0x7f6e61729f8b in __GI___clone3 (/lib64/libc.so.6+0x11bf8b) (BuildId: c8c3fa52aaee3f5d73b6fd862e39e9d4c010b6ba)

A tibble: 1 × 1

x

1 1970-01-01 00:00:00

Read directly from strings with I()

read_csv_arrow(I("x,y\n1,2\n3,4"))

A tibble: 2 × 2

  x     y


1 1 2
2 3 4

read_delim_arrow(I(c("x y", "1 2", "3 4")), delim = " ")

A tibble: 2 × 2

  x     y


1 1 2
2 3 4

https://www.stats.ox.ac.uk/pub/bdr/memtests/gcc-UBSAN/arrow/arrow-Ex.Rout

test_check("arrow", reporter = arrow_reporter)
/data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/csv/parser.cc:106:7: runtime error: load of value 32, which is not a valid value for type 'bool'
#0 0x7f36999b945e in ResizableValueDescWriter /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/csv/parser.cc:106
#1 0x7f36999b945e in construct<arrow::csv::(anonymous namespace)::ResizableValueDescWriter> /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/aligned_storage.h:52
#2 0x7f36999b945e in ConstructValue<arrow::csv::(anonymous namespace)::ResizableValueDescWriter> /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/result.h:448
#3 0x7f36999b945e in Result /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/result.h:180
#4 0x7f36999b945e in Makearrow::MemoryPool*& /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/csv/parser.cc:142
#5 0x7f36a468052c in arrow::Status arrow::csv::BlockParserImpl::ParseSpecialized<arrow::csv::internal::SpecializedOptions<true, false> >(std::vector<std::basic_string_view<char, std::char_traits >, std::allocator<std::basic_string_view<char, std::char_traits > > > const&, bool, unsigned int*) /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/csv/parser.cc:578
#6 0x7f36a46a54aa in arrow::csv::BlockParserImpl::Parse(std::vector<std::basic_string_view<char, std::char_traits >, std::allocator<std::basic_string_view<char, std::char_traits > > > const&, bool, unsigned int*) /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/csv/parser.cc:657
#7 0x7f36a46a5b70 in arrow::csv::BlockParser::Parse(std::basic_string_view<char, std::char_traits >, unsigned int*) /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/csv/parser.cc:706
#8 0x7f36a46b5bf2 in ProcessHeader /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/csv/reader.cc:609
#9 0x7f36a488ffa0 in operator() /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/csv/reader.cc:1097
#10 0x7f36a488ffa0 in operator()<arrow::csv::(anonymous namespace)::AsyncThreadedTableReader::ProcessFirstBuffer()::<lambda(const std::shared_ptrarrow::Buffer&)>, const std::shared_ptrarrow::Buffer&> /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.h:150
#11 0x7f36a488ffa0 in IgnoringArgsIf<arrow::csv::(anonymous namespace)::AsyncThreadedTableReader::ProcessFirstBuffer()::<lambda(const std::shared_ptrarrow::Buffer&)>, arrow::Future<std::shared_ptrarrow::Buffer >, const std::shared_ptrarrow::Buffer&> /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.h:193
#12 0x7f36a488ffa0 in operator() /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.h:545
#13 0x7f36a488ffa0 in operator() /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.h:442
#14 0x7f36a488ffa0 in invoke /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/functional.h:152
#15 0x7f36a543bdb4 in arrow::internal::FnOnce<void (arrow::FutureImpl const&)>::operator()(arrow::FutureImpl const&) && /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/functional.h:140
#16 0x7f36a543bdb4 in arrow::ConcreteFutureImpl::RunOrScheduleCallback(std::shared_ptrarrow::FutureImpl const&, arrow::FutureImpl::CallbackRecord&&, bool) /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.cc:110
#17 0x7f36a543bdb4 in arrow::ConcreteFutureImpl::RunOrScheduleCallback(std::shared_ptrarrow::FutureImpl const&, arrow::FutureImpl::CallbackRecord&&, bool) /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.cc:100
#18 0x7f36a543e57a in arrow::ConcreteFutureImpl::DoMarkFinishedOrFailed(arrow::FutureState) /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.cc:148
#19 0x7f36a5440362 in arrow::ConcreteFutureImpl::DoMarkFinished() /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.cc:39
#20 0x7f36a5440362 in arrow::FutureImpl::MarkFinished() /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.cc:224
#21 0x7f36a4828f20 in arrow::Future<std::shared_ptrarrow::Buffer >::DoMarkFinished(arrow::Result<std::shared_ptrarrow::Buffer >) /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.h:658
#22 0x7f36a4828f20 in arrow::Future<std::shared_ptrarrow::Buffer >::MarkFinished(arrow::Result<std::shared_ptrarrow::Buffer >) /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.h:403
#23 0x7f36a4830e46 in arrow::detail::MarkNextFinished<arrow::Future<std::shared_ptrarrow::Buffer >, arrow::Future<std::shared_ptrarrow::Buffer >, false, false>::operator()(arrow::Result<std::shared_ptrarrow::Buffer > const&) && /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.h:111
#24 0x7f36a4830e46 in arrow::Future<std::shared_ptrarrow::Buffer >::WrapResultOnComplete::Callback<arrow::detail::MarkNextFinished<arrow::Future<std::shared_ptrarrow::Buffer >, arrow::Future<std::shared_ptrarrow::Buffer >, false, false> >::operator()(arrow::FutureImpl const&) && /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.h:442
#25 0x7f36a4830e46 in arrow::internal::FnOnce<void (arrow::FutureImpl const&)>::FnImpl<arrow::Future<std::shared_ptrarrow::Buffer >::WrapResultOnComplete::Callback<arrow::detail::MarkNextFinished<arrow::Future<std::shared_ptrarrow::Buffer >, arrow::Future<std::shared_ptrarrow::Buffer >, false, false> > >::invoke(arrow::FutureImpl const&) /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/functional.h:152
#26 0x7f36a543bdb4 in arrow::internal::FnOnce<void (arrow::FutureImpl const&)>::operator()(arrow::FutureImpl const&) && /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/functional.h:140
#27 0x7f36a543bdb4 in arrow::ConcreteFutureImpl::RunOrScheduleCallback(std::shared_ptrarrow::FutureImpl const&, arrow::FutureImpl::CallbackRecord&&, bool) /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.cc:110
#28 0x7f36a543bdb4 in arrow::ConcreteFutureImpl::RunOrScheduleCallback(std::shared_ptrarrow::FutureImpl const&, arrow::FutureImpl::CallbackRecord&&, bool) /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.cc:100
#29 0x7f36a54453a7 in arrow::ConcreteFutureImpl::AddCallback(arrow::internal::FnOnce<void (arrow::FutureImpl const&)>, arrow::CallbackOptions) /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.cc:64
#30 0x7f36a54453a7 in arrow::FutureImpl::AddCallback(arrow::internal::FnOnce<void (arrow::FutureImpl const&)>, arrow::CallbackOptions) /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.cc:229
#31 0x7f36a482ec4d in void arrow::Future<std::shared_ptrarrow::Buffer >::AddCallback<arrow::detail::MarkNextFinished<arrow::Future<std::shared_ptrarrow::Buffer >, arrow::Future<std::shared_ptrarrow::Buffer >, false, false>, arrow::Future<std::shared_ptrarrow::Buffer >::WrapResultOnComplete::Callback<arrow::detail::MarkNextFinished<arrow::Future<std::shared_ptrarrow::Buffer >, arrow::Future<std::shared_ptrarrow::Buffer >, false, false> > >(arrow::detail::MarkNextFinished<arrow::Future<std::shared_ptrarrow::Buffer >, arrow::Future<std::shared_ptrarrow::Buffer >, false, false>, arrow::CallbackOptions) const /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.h:493
#32 0x7f36a482ec4d in std::enable_if<arrow::detail::is_future<arrow::Future<std::shared_ptrarrow::Buffer > >::value, void>::type arrow::detail::ContinueFuture::operator()<arrow::TransformingGenerator<std::shared_ptrarrow::Buffer, std::shared_ptrarrow::Buffer >::TransformingGeneratorState::operator()()::{lambda(std::shared_ptrarrow::Buffer const&)#1}, std::shared_ptrarrow::Buffer const&, arrow::Future<std::shared_ptrarrow::Buffer >, arrow::Future<std::shared_ptrarrow::Buffer > >(arrow::Future<std::shared_ptrarrow::Buffer >, arrow::TransformingGenerator<std::shared_ptrarrow::Buffer, std::shared_ptrarrow::Buffer >::TransformingGeneratorState::operator()()::{lambda(std::shared_ptrarrow::Buffer const&)#1}&&, std::shared_ptrarrow::Buffer const&) const /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.h:181
#33 0x7f36a482ec4d in void arrow::detail::ContinueFuture::IgnoringArgsIf<arrow::TransformingGenerator<std::shared_ptrarrow::Buffer, std::shared_ptrarrow::Buffer >::TransformingGeneratorState::operator()()::{lambda(std::shared_ptrarrow::Buffer const&)#1}, arrow::Future<std::shared_ptrarrow::Buffer >, std::shared_ptrarrow::Buffer const&>(std::integral_constant<bool, false>, arrow::Future<std::shared_ptrarrow::Buffer >&&, arrow::TransformingGenerator<std::shared_ptrarrow::Buffer, std::shared_ptrarrow::Buffer >::TransformingGeneratorState::operator()()::{lambda(std::shared_ptrarrow::Buffer const&)#1}&&, std::shared_ptrarrow::Buffer const&) const /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.h:193
#34 0x7f36a482ec4d in arrow::Future<std::shared_ptrarrow::Buffer >::ThenOnComplete<arrow::TransformingGenerator<std::shared_ptrarrow::Buffer, std::shared_ptrarrow::Buffer >::TransformingGeneratorState::operator()()::{lambda(std::shared_ptrarrow::Buffer const&)#1}, arrow::Future<std::shared_ptrarrow::Buffer >::PassthruOnFailure<arrow::TransformingGenerator<std::shared_ptrarrow::Buffer, std::shared_ptrarrow::Buffer >::TransformingGeneratorState::operator()()::{lambda(std::shared_ptrarrow::Buffer const&)#1}> >::operator()(arrow::Result<std::shared_ptrarrow::Buffer > const&) && /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.h:545
#35 0x7f36a482ec4d in arrow::Future<std::shared_ptrarrow::Buffer >::WrapResultOnComplete::Callback<arrow::Future<std::shared_ptrarrow::Buffer >::ThenOnComplete<arrow::TransformingGenerator<std::shared_ptrarrow::Buffer, std::shared_ptrarrow::Buffer >::TransformingGeneratorState::operator()()::{lambda(std::shared_ptrarrow::Buffer const&)#1}, arrow::Future<std::shared_ptrarrow::Buffer >::PassthruOnFailure<arrow::TransformingGenerator<std::shared_ptrarrow::Buffer, std::shared_ptrarrow::Buffer >::TransformingGeneratorState::operator()()::{lambda(std::shared_ptrarrow::Buffer const&)#1}> > >::operator()(arrow::FutureImpl const&) && /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.h:442
#36 0x7f36a482ec4d in arrow::internal::FnOnce<void (arrow::FutureImpl const&)>::FnImpl<arrow::Future<std::shared_ptrarrow::Buffer >::WrapResultOnComplete::Callback<arrow::Future<std::shared_ptrarrow::Buffer >::ThenOnComplete<arrow::TransformingGenerator<std::shared_ptrarrow::Buffer, std::shared_ptrarrow::Buffer >::TransformingGeneratorState::operator()()::{lambda(std::shared_ptrarrow::Buffer const&)#1}, arrow::Future<std::shared_ptrarrow::Buffer >::PassthruOnFailure<arrow::TransformingGenerator<std::shared_ptrarrow::Buffer, std::shared_ptrarrow::Buffer >::TransformingGeneratorState::operator()()::{lambda(std::shared_ptrarrow::Buffer const&)#1}> > > >::invoke(arrow::FutureImpl const&) /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/functional.h:152
#37 0x7f36a543bdb4 in arrow::internal::FnOnce<void (arrow::FutureImpl const&)>::operator()(arrow::FutureImpl const&) && /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/functional.h:140
#38 0x7f36a543bdb4 in arrow::ConcreteFutureImpl::RunOrScheduleCallback(std::shared_ptrarrow::FutureImpl const&, arrow::FutureImpl::CallbackRecord&&, bool) /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.cc:110
#39 0x7f36a543bdb4 in arrow::ConcreteFutureImpl::RunOrScheduleCallback(std::shared_ptrarrow::FutureImpl const&, arrow::FutureImpl::CallbackRecord&&, bool) /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.cc:100
#40 0x7f36a543e57a in arrow::ConcreteFutureImpl::DoMarkFinishedOrFailed(arrow::FutureState) /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.cc:148
#41 0x7f36a5440362 in arrow::ConcreteFutureImpl::DoMarkFinished() /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.cc:39
#42 0x7f36a5440362 in arrow::FutureImpl::MarkFinished() /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.cc:224
#43 0x7f36a4828f20 in arrow::Future<std::shared_ptrarrow::Buffer >::DoMarkFinished(arrow::Result<std::shared_ptrarrow::Buffer >) /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.h:658
#44 0x7f36a4828f20 in arrow::Future<std::shared_ptrarrow::Buffer >::MarkFinished(arrow::Result<std::shared_ptrarrow::Buffer >) /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.h:403
#45 0x7f36a482d302 in arrow::internal::Executor::DoTransfer<std::shared_ptrarrow::Buffer, arrow::Future<std::shared_ptrarrow::Buffer >, arrow::Result<std::shared_ptrarrow::Buffer > >(arrow::Future<std::shared_ptrarrow::Buffer >, bool)::{lambda(arrow::Result<std::shared_ptrarrow::Buffer > const&)#2}::operator()(arrow::Result<std::shared_ptrarrow::Buffer > const&)::{lambda()#1}::operator()() /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/thread_pool.h:248
#46 0x7f36a482d302 in arrow::internal::FnOnce<void ()>::FnImpl<arrow::internal::Executor::DoTransfer<std::shared_ptrarrow::Buffer, arrow::Future<std::shared_ptrarrow::Buffer >, arrow::Result<std::shared_ptrarrow::Buffer > >(arrow::Future<std::shared_ptrarrow::Buffer >, bool)::{lambda(arrow::Result<std::shared_ptrarrow::Buffer > const&)#2}::operator()(arrow::Result<std::shared_ptrarrow::Buffer > const&)::{lambda()#1}>::invoke() /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/functional.h:152
#47 0x7f36a57130f9 in arrow::internal::FnOnce<void ()>::operator()() && /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/functional.h:140
#48 0x7f36a57130f9 in WorkerLoop /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/thread_pool.cc:478
#49 0x7f36a57130f9 in operator() /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/thread_pool.cc:643
#50 0x7f36a57130f9 in __invoke_impl<void, arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > /usr/local/gcc15/include/c++/15.1.0/bits/invoke.h:63
#51 0x7f36a57130f9 in __invoke<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > /usr/local/gcc15/include/c++/15.1.0/bits/invoke.h:98
#52 0x7f36a57130f9 in _M_invoke<0> /usr/local/gcc15/include/c++/15.1.0/bits/std_thread.h:303
#53 0x7f36a57130f9 in operator() /usr/local/gcc15/include/c++/15.1.0/bits/std_thread.h:310
#54 0x7f36a57130f9 in _M_run /usr/local/gcc15/include/c++/15.1.0/bits/std_thread.h:255
#55 0x7f36ce4e7563 in execute_native_thread_routine (/lib64/libstdc++.so.6+0xe7563) (BuildId: efdde18722aa72a0a779270371aeee5a9f6ddf87)
#56 0x7f36cfe5df95 in asan_thread_start(void*) (/lib64/libasan.so.8+0x5df95) (BuildId: a4ad7eb954b390cf00f07fa10952988a41d9fc7a)
#57 0x7f36ce8a6087 in start_thread (/lib64/libc.so.6+0x98087) (BuildId: c8c3fa52aaee3f5d73b6fd862e39e9d4c010b6ba)
#58 0x7f36ce929f8b in __GI___clone3 (/lib64/libc.so.6+0x11bf8b) (BuildId: c8c3fa52aaee3f5d73b6fd862e39e9d4c010b6ba)

/data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/csv/parser.cc:106:7: runtime error: load of value 72, which is not a valid value for type 'bool'
#0 0x7f36999ae625 in arrow::csv::(anonymous namespace)::ValueDescWriter<arrow::csv::(anonymous namespace)::PresizedValueDescWriter>::ValueDescWriter(arrow::csv::(anonymous namespace)::ValueDescWriter<arrow::csv::(anonymous namespace)::PresizedValueDescWriter>&&) [clone .cold] (/data/gannet/ripley/R/packages/tests-gcc-SAN/arrow.Rcheck/arrow/libs/arrow.so+0x11dae625) (BuildId: 505b86fb06d4592154b3174f67dd1ca117b95050)
#1 0x7f36a467c2fc in PresizedValueDescWriter /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/csv/parser.cc:197
#2 0x7f36a467c2fc in construct<arrow::csv::(anonymous namespace)::PresizedValueDescWriter> /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/aligned_storage.h:52
#3 0x7f36a467c2fc in ConstructValue<arrow::csv::(anonymous namespace)::PresizedValueDescWriter> /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/result.h:448
#4 0x7f36a467c2fc in Result /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/result.h:180
#5 0x7f36a467c2fc in Make<arrow::MemoryPool*&, int&, int&> /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/csv/parser.cc:142
#6 0x7f36a467c2fc in arrow::Status arrow::csv::BlockParserImpl::ParseSpecialized<arrow::csv::internal::SpecializedOptions<true, false> >(std::vector<std::basic_string_view<char, std::char_traits >, std::allocator<std::basic_string_view<char, std::char_traits > > > const&, bool, unsigned int*) /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/csv/parser.cc:603
#7 0x7f36a46a54aa in arrow::csv::BlockParserImpl::Parse(std::vector<std::basic_string_view<char, std::char_traits >, std::allocator<std::basic_string_view<char, std::char_traits > > > const&, bool, unsigned int*) /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/csv/parser.cc:657
#8 0x7f36a46b1200 in arrow::csv::BlockParser::ParseFinal(std::vector<std::basic_string_view<char, std::char_traits >, std::allocator<std::basic_string_view<char, std::char_traits > > > const&, unsigned int*) /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/csv/parser.cc:702
#9 0x7f36a46b1200 in operator() /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/csv/reader.cc:426
#10 0x7f36a47e4725 in operator() /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/async_generator.h:273
#11 0x7f36a47e4725 in __invoke_impl<arrow::Future<arrow::csv::(anonymous namespace)::ParsedBlock>, arrow::MakeMappedGenerator<csv::(anonymous namespace)::CSVBlock, csv::(anonymous namespace)::BlockParsingOperator>(AsyncGenerator<csv::(anonymous namespace)::CSVBlock>, csv::(anonymous namespace)::BlockParsingOperator)::<lambda(const arrow::csv::(anonymous namespace)::CSVBlock&)>&, const arrow::csv::(anonymous namespace)::CSVBlock&> /usr/local/gcc15/include/c++/15.1.0/bits/invoke.h:63
#12 0x7f36a47e4725 in __invoke_r<arrow::Future<arrow::csv::(anonymous namespace)::ParsedBlock>, arrow::MakeMappedGenerator<csv::(anonymous namespace)::CSVBlock, csv::(anonymous namespace)::BlockParsingOperator>(AsyncGenerator<csv::(anonymous namespace)::CSVBlock>, csv::(anonymous namespace)::BlockParsingOperator)::<lambda(const arrow::csv::(anonymous namespace)::CSVBlock&)>&, const arrow::csv::(anonymous namespace)::CSVBlock&> /usr/local/gcc15/include/c++/15.1.0/bits/invoke.h:118
#13 0x7f36a47e4725 in _M_invoke /usr/local/gcc15/include/c++/15.1.0/bits/std_function.h:293
#14 0x7f36a4859535 in operator() /usr/local/gcc15/include/c++/15.1.0/bits/std_function.h:593
#15 0x7f36a4859535 in operator() /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/async_generator.h:247
#16 0x7f36a4859535 in operator() /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.h:442
#17 0x7f36a4859535 in invoke /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/functional.h:152
#18 0x7f36a543bdb4 in arrow::internal::FnOnce<void (arrow::FutureImpl const&)>::operator()(arrow::FutureImpl const&) && /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/functional.h:140
#19 0x7f36a543bdb4 in arrow::ConcreteFutureImpl::RunOrScheduleCallback(std::shared_ptrarrow::FutureImpl const&, arrow::FutureImpl::CallbackRecord&&, bool) /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.cc:110
#20 0x7f36a543bdb4 in arrow::ConcreteFutureImpl::RunOrScheduleCallback(std::shared_ptrarrow::FutureImpl const&, arrow::FutureImpl::CallbackRecord&&, bool) /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.cc:100
#21 0x7f36a54453a7 in arrow::ConcreteFutureImpl::AddCallback(arrow::internal::FnOnce<void (arrow::FutureImpl const&)>, arrow::CallbackOptions) /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.cc:64
#22 0x7f36a54453a7 in arrow::FutureImpl::AddCallback(arrow::internal::FnOnce<void (arrow::FutureImpl const&)>, arrow::CallbackOptions) /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.cc:229
#23 0x7f36a47a6c79 in AddCallback<arrow::MappingGenerator<arrow::csv::(anonymous namespace)::CSVBlock, arrow::csv::(anonymous namespace)::ParsedBlock>::Callback> /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.h:493
#24 0x7f36a47f361b in operator() /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/async_generator.h:163
#25 0x7f36a47f361b in __invoke_impl<arrow::Future<arrow::csv::(anonymous namespace)::ParsedBlock>, arrow::MappingGenerator<arrow::csv::(anonymous namespace)::CSVBlock, arrow::csv::(anonymous namespace)::ParsedBlock>&> /usr/local/gcc15/include/c++/15.1.0/bits/invoke.h:63
#26 0x7f36a47f361b in __invoke_r<arrow::Future<arrow::csv::(anonymous namespace)::ParsedBlock>, arrow::MappingGenerator<arrow::csv::(anonymous namespace)::CSVBlock, arrow::csv::(anonymous namespace)::ParsedBlock>&> /usr/local/gcc15/include/c++/15.1.0/bits/invoke.h:118
#27 0x7f36a47f361b in _M_invoke /usr/local/gcc15/include/c++/15.1.0/bits/std_function.h:293
#28 0x7f36a47f7f84 in operator() /usr/local/gcc15/include/c++/15.1.0/bits/std_function.h:593
#29 0x7f36a47f7f84 in operator() /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/async_generator.h:163
#30 0x7f36a47f7f84 in __invoke_impl<arrow::Future<arrow::csv::(anonymous namespace)::DecodedBlock>, arrow::MappingGenerator<arrow::csv::(anonymous namespace)::ParsedBlock, arrow::csv::(anonymous namespace)::DecodedBlock>&> /usr/local/gcc15/include/c++/15.1.0/bits/invoke.h:63
#31 0x7f36a47f7f84 in __invoke_r<arrow::Future<arrow::csv::(anonymous namespace)::DecodedBlock>, arrow::MappingGenerator<arrow::csv::(anonymous namespace)::ParsedBlock, arrow::csv::(anonymous namespace)::DecodedBlock>&> /usr/local/gcc15/include/c++/15.1.0/bits/invoke.h:118
#32 0x7f36a47f7f84 in _M_invoke /usr/local/gcc15/include/c++/15.1.0/bits/std_function.h:293
#33 0x7f36a47349c5 in operator() /usr/local/gcc15/include/c++/15.1.0/bits/std_function.h:593
#34 0x7f36a46ce81b in InitAfterFirstBuffer /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/csv/reader.cc:897
#35 0x7f36a47bedc8 in operator() /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/csv/reader.cc:855
#36 0x7f36a47bedc8 in operator()<arrow::csv::(anonymous namespace)::StreamingReaderImpl::Init(arrow::internal::Executor*)::<lambda(const std::shared_ptrarrow::Buffer&)>, const std::shared_ptrarrow::Buffer&> /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.h:178
#37 0x7f36a47bedc8 in IgnoringArgsIf<arrow::csv::(anonymous namespace)::StreamingReaderImpl::Init(arrow::internal::Executor*)::<lambda(const std::shared_ptrarrow::Buffer&)>, arrow::Future<>, const std::shared_ptrarrow::Buffer&> /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.h:193
#38 0x7f36a47bedc8 in operator() /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.h:545
#39 0x7f36a47bedc8 in operator() /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.h:442
#40 0x7f36a47bedc8 in invoke /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/functional.h:152
#41 0x7f36a543bdb4 in arrow::internal::FnOnce<void (arrow::FutureImpl const&)>::operator()(arrow::FutureImpl const&) && /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/functional.h:140
#42 0x7f36a543bdb4 in arrow::ConcreteFutureImpl::RunOrScheduleCallback(std::shared_ptrarrow::FutureImpl const&, arrow::FutureImpl::CallbackRecord&&, bool) /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.cc:110
#43 0x7f36a543bdb4 in arrow::ConcreteFutureImpl::RunOrScheduleCallback(std::shared_ptrarrow::FutureImpl const&, arrow::FutureImpl::CallbackRecord&&, bool) /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.cc:100
#44 0x7f36a543e57a in arrow::ConcreteFutureImpl::DoMarkFinishedOrFailed(arrow::FutureState) /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.cc:148
#45 0x7f36a5440362 in arrow::ConcreteFutureImpl::DoMarkFinished() /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.cc:39
#46 0x7f36a5440362 in arrow::FutureImpl::MarkFinished() /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.cc:224
#47 0x7f36a4828f20 in arrow::Future<std::shared_ptrarrow::Buffer >::DoMarkFinished(arrow::Result<std::shared_ptrarrow::Buffer >) /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.h:658
#48 0x7f36a4828f20 in arrow::Future<std::shared_ptrarrow::Buffer >::MarkFinished(arrow::Result<std::shared_ptrarrow::Buffer >) /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.h:403
#49 0x7f36a4830e46 in arrow::detail::MarkNextFinished<arrow::Future<std::shared_ptrarrow::Buffer >, arrow::Future<std::shared_ptrarrow::Buffer >, false, false>::operator()(arrow::Result<std::shared_ptrarrow::Buffer > const&) && /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.h:111
#50 0x7f36a4830e46 in arrow::Future<std::shared_ptrarrow::Buffer >::WrapResultOnComplete::Callback<arrow::detail::MarkNextFinished<arrow::Future<std::shared_ptrarrow::Buffer >, arrow::Future<std::shared_ptrarrow::Buffer >, false, false> >::operator()(arrow::FutureImpl const&) && /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.h:442
#51 0x7f36a4830e46 in arrow::internal::FnOnce<void (arrow::FutureImpl const&)>::FnImpl<arrow::Future<std::shared_ptrarrow::Buffer >::WrapResultOnComplete::Callback<arrow::detail::MarkNextFinished<arrow::Future<std::shared_ptrarrow::Buffer >, arrow::Future<std::shared_ptrarrow::Buffer >, false, false> > >::invoke(arrow::FutureImpl const&) /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/functional.h:152
#52 0x7f36a543bdb4 in arrow::internal::FnOnce<void (arrow::FutureImpl const&)>::operator()(arrow::FutureImpl const&) && /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/functional.h:140
#53 0x7f36a543bdb4 in arrow::ConcreteFutureImpl::RunOrScheduleCallback(std::shared_ptrarrow::FutureImpl const&, arrow::FutureImpl::CallbackRecord&&, bool) /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.cc:110
#54 0x7f36a543bdb4 in arrow::ConcreteFutureImpl::RunOrScheduleCallback(std::shared_ptrarrow::FutureImpl const&, arrow::FutureImpl::CallbackRecord&&, bool) /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.cc:100
#55 0x7f36a54453a7 in arrow::ConcreteFutureImpl::AddCallback(arrow::internal::FnOnce<void (arrow::FutureImpl const&)>, arrow::CallbackOptions) /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.cc:64
#56 0x7f36a54453a7 in arrow::FutureImpl::AddCallback(arrow::internal::FnOnce<void (arrow::FutureImpl const&)>, arrow::CallbackOptions) /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.cc:229
#57 0x7f36a482ec4d in void arrow::Future<std::shared_ptrarrow::Buffer >::AddCallback<arrow::detail::MarkNextFinished<arrow::Future<std::shared_ptrarrow::Buffer >, arrow::Future<std::shared_ptrarrow::Buffer >, false, false>, arrow::Future<std::shared_ptrarrow::Buffer >::WrapResultOnComplete::Callback<arrow::detail::MarkNextFinished<arrow::Future<std::shared_ptrarrow::Buffer >, arrow::Future<std::shared_ptrarrow::Buffer >, false, false> > >(arrow::detail::MarkNextFinished<arrow::Future<std::shared_ptrarrow::Buffer >, arrow::Future<std::shared_ptrarrow::Buffer >, false, false>, arrow::CallbackOptions) const /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.h:493
#58 0x7f36a482ec4d in std::enable_if<arrow::detail::is_future<arrow::Future<std::shared_ptrarrow::Buffer > >::value, void>::type arrow::detail::ContinueFuture::operator()<arrow::TransformingGenerator<std::shared_ptrarrow::Buffer, std::shared_ptrarrow::Buffer >::TransformingGeneratorState::operator()()::{lambda(std::shared_ptrarrow::Buffer const&)#1}, std::shared_ptrarrow::Buffer const&, arrow::Future<std::shared_ptrarrow::Buffer >, arrow::Future<std::shared_ptrarrow::Buffer > >(arrow::Future<std::shared_ptrarrow::Buffer >, arrow::TransformingGenerator<std::shared_ptrarrow::Buffer, std::shared_ptrarrow::Buffer >::TransformingGeneratorState::operator()()::{lambda(std::shared_ptrarrow::Buffer const&)#1}&&, std::shared_ptrarrow::Buffer const&) const /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.h:181
#59 0x7f36a482ec4d in void arrow::detail::ContinueFuture::IgnoringArgsIf<arrow::TransformingGenerator<std::shared_ptrarrow::Buffer, std::shared_ptrarrow::Buffer >::TransformingGeneratorState::operator()()::{lambda(std::shared_ptrarrow::Buffer const&)#1}, arrow::Future<std::shared_ptrarrow::Buffer >, std::shared_ptrarrow::Buffer const&>(std::integral_constant<bool, false>, arrow::Future<std::shared_ptrarrow::Buffer >&&, arrow::TransformingGenerator<std::shared_ptrarrow::Buffer, std::shared_ptrarrow::Buffer >::TransformingGeneratorState::operator()()::{lambda(std::shared_ptrarrow::Buffer const&)#1}&&, std::shared_ptrarrow::Buffer const&) const /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.h:193
#60 0x7f36a482ec4d in arrow::Future<std::shared_ptrarrow::Buffer >::ThenOnComplete<arrow::TransformingGenerator<std::shared_ptrarrow::Buffer, std::shared_ptrarrow::Buffer >::TransformingGeneratorState::operator()()::{lambda(std::shared_ptrarrow::Buffer const&)#1}, arrow::Future<std::shared_ptrarrow::Buffer >::PassthruOnFailure<arrow::TransformingGenerator<std::shared_ptrarrow::Buffer, std::shared_ptrarrow::Buffer >::TransformingGeneratorState::operator()()::{lambda(std::shared_ptrarrow::Buffer const&)#1}> >::operator()(arrow::Result<std::shared_ptrarrow::Buffer > const&) && /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.h:545
#61 0x7f36a482ec4d in arrow::Future<std::shared_ptrarrow::Buffer >::WrapResultOnComplete::Callback<arrow::Future<std::shared_ptrarrow::Buffer >::ThenOnComplete<arrow::TransformingGenerator<std::shared_ptrarrow::Buffer, std::shared_ptrarrow::Buffer >::TransformingGeneratorState::operator()()::{lambda(std::shared_ptrarrow::Buffer const&)#1}, arrow::Future<std::shared_ptrarrow::Buffer >::PassthruOnFailure<arrow::TransformingGenerator<std::shared_ptrarrow::Buffer, std::shared_ptrarrow::Buffer >::TransformingGeneratorState::operator()()::{lambda(std::shared_ptrarrow::Buffer const&)#1}> > >::operator()(arrow::FutureImpl const&) && /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.h:442
#62 0x7f36a482ec4d in arrow::internal::FnOnce<void (arrow::FutureImpl const&)>::FnImpl<arrow::Future<std::shared_ptrarrow::Buffer >::WrapResultOnComplete::Callback<arrow::Future<std::shared_ptrarrow::Buffer >::ThenOnComplete<arrow::TransformingGenerator<std::shared_ptrarrow::Buffer, std::shared_ptrarrow::Buffer >::TransformingGeneratorState::operator()()::{lambda(std::shared_ptrarrow::Buffer const&)#1}, arrow::Future<std::shared_ptrarrow::Buffer >::PassthruOnFailure<arrow::TransformingGenerator<std::shared_ptrarrow::Buffer, std::shared_ptrarrow::Buffer >::TransformingGeneratorState::operator()()::{lambda(std::shared_ptrarrow::Buffer const&)#1}> > > >::invoke(arrow::FutureImpl const&) /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/functional.h:152
#63 0x7f36a543bdb4 in arrow::internal::FnOnce<void (arrow::FutureImpl const&)>::operator()(arrow::FutureImpl const&) && /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/functional.h:140
#64 0x7f36a543bdb4 in arrow::ConcreteFutureImpl::RunOrScheduleCallback(std::shared_ptrarrow::FutureImpl const&, arrow::FutureImpl::CallbackRecord&&, bool) /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.cc:110
#65 0x7f36a543bdb4 in arrow::ConcreteFutureImpl::RunOrScheduleCallback(std::shared_ptrarrow::FutureImpl const&, arrow::FutureImpl::CallbackRecord&&, bool) /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.cc:100
#66 0x7f36a543e57a in arrow::ConcreteFutureImpl::DoMarkFinishedOrFailed(arrow::FutureState) /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.cc:148
#67 0x7f36a5440362 in arrow::ConcreteFutureImpl::DoMarkFinished() /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.cc:39
#68 0x7f36a5440362 in arrow::FutureImpl::MarkFinished() /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.cc:224
#69 0x7f36a4828f20 in arrow::Future<std::shared_ptrarrow::Buffer >::DoMarkFinished(arrow::Result<std::shared_ptrarrow::Buffer >) /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.h:658
#70 0x7f36a4828f20 in arrow::Future<std::shared_ptrarrow::Buffer >::MarkFinished(arrow::Result<std::shared_ptrarrow::Buffer >) /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/future.h:403
#71 0x7f36a482d302 in arrow::internal::Executor::DoTransfer<std::shared_ptrarrow::Buffer, arrow::Future<std::shared_ptrarrow::Buffer >, arrow::Result<std::shared_ptrarrow::Buffer > >(arrow::Future<std::shared_ptrarrow::Buffer >, bool)::{lambda(arrow::Result<std::shared_ptrarrow::Buffer > const&)#2}::operator()(arrow::Result<std::shared_ptrarrow::Buffer > const&)::{lambda()#1}::operator()() /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/thread_pool.h:248
#72 0x7f36a482d302 in arrow::internal::FnOnce<void ()>::FnImpl<arrow::internal::Executor::DoTransfer<std::shared_ptrarrow::Buffer, arrow::Future<std::shared_ptrarrow::Buffer >, arrow::Result<std::shared_ptrarrow::Buffer > >(arrow::Future<std::shared_ptrarrow::Buffer >, bool)::{lambda(arrow::Result<std::shared_ptrarrow::Buffer > const&)#2}::operator()(arrow::Result<std::shared_ptrarrow::Buffer > const&)::{lambda()#1}>::invoke() /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/functional.h:152
#73 0x7f36a57130f9 in arrow::internal::FnOnce<void ()>::operator()() && /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/functional.h:140
#74 0x7f36a57130f9 in WorkerLoop /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/thread_pool.cc:478
#75 0x7f36a57130f9 in operator() /data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/util/thread_pool.cc:643
#76 0x7f36a57130f9 in __invoke_impl<void, arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > /usr/local/gcc15/include/c++/15.1.0/bits/invoke.h:63
#77 0x7f36a57130f9 in __invoke<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::<lambda()> > /usr/local/gcc15/include/c++/15.1.0/bits/invoke.h:98
#78 0x7f36a57130f9 in _M_invoke<0> /usr/local/gcc15/include/c++/15.1.0/bits/std_thread.h:303
#79 0x7f36a57130f9 in operator() /usr/local/gcc15/include/c++/15.1.0/bits/std_thread.h:310
#80 0x7f36a57130f9 in _M_run /usr/local/gcc15/include/c++/15.1.0/bits/std_thread.h:255
#81 0x7f36ce4e7563 in execute_native_thread_routine (/lib64/libstdc++.so.6+0xe7563) (BuildId: efdde18722aa72a0a779270371aeee5a9f6ddf87)
#82 0x7f36cfe5df95 in asan_thread_start(void*) (/lib64/libasan.so.8+0x5df95) (BuildId: a4ad7eb954b390cf00f07fa10952988a41d9fc7a)
#83 0x7f36ce8a6087 in start_thread (/lib64/libc.so.6+0x98087) (BuildId: c8c3fa52aaee3f5d73b6fd862e39e9d4c010b6ba)
#84 0x7f36ce929f8b in __GI___clone3 (/lib64/libc.so.6+0x11bf8b) (BuildId: c8c3fa52aaee3f5d73b6fd862e39e9d4c010b6ba)

/data/gannet/ripley/R/packages/tests-gcc-SAN/arrow/tools/cpp/src/arrow/acero/source_node.cc:76: An input buffer was poorly aligned. This could lead to crashes or poor performance on some hardware. Please ensure that all Acero sources generate aligned buffers, or change the unaligned buffer handling configuration to silence this warning.

https://www.stats.ox.ac.uk/pub/bdr/memtests/gcc-UBSAN/arrow/tests/testthat.Rout
</details>



### Component(s)

C++, R
assignUser pushed a commit that referenced this issue May 13, 2025
### Rationale for this change

Fix gcc-UBSAN CI job to be correctly running, then fix the UBSAN error.

### What changes are included in this PR?

* Generalize our sanitizer jobs and use rhub's containers for this. wch/r-debug looks like it's out of date (hence why we didn't catch this), and it's easier to use a matrix of images with rhubarb anyway.
* Initialize the `_quoted` variable — we could also cast it to boolean where the UBSAN popped, but this seems to be enough.

### Are these changes tested?

Yes

### Are there any user-facing changes?

No
* GitHub Issue: #46394

Authored-by: Jonathan Keane <jkeane@gmail.com>
Signed-off-by: Jacob Wujciak-Jens <jacob@wujciak.de>
@assignUser assignUser added this to the 21.0.0 milestone May 13, 2025
@assignUser
Copy link
Member

Issue resolved by pull request 46397
#46397

amoeba pushed a commit that referenced this issue May 16, 2025
### Rationale for this change

Fix gcc-UBSAN CI job to be correctly running, then fix the UBSAN error.

### What changes are included in this PR?

* Generalize our sanitizer jobs and use rhub's containers for this. wch/r-debug looks like it's out of date (hence why we didn't catch this), and it's easier to use a matrix of images with rhubarb anyway.
* Initialize the `_quoted` variable — we could also cast it to boolean where the UBSAN popped, but this seems to be enough.

### Are these changes tested?

Yes

### Are there any user-facing changes?

No
* GitHub Issue: #46394

Authored-by: Jonathan Keane <jkeane@gmail.com>
Signed-off-by: Jacob Wujciak-Jens <jacob@wujciak.de>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants