[
https://issues.apache.org/jira/browse/ARROW-16574?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Yibo Cai resolved ARROW-16574.
------------------------------
Fix Version/s: 9.0.0
Resolution: Fixed
Issue resolved by pull request 13245
[https://github.com/apache/arrow/pull/13245]
> [C++] TSAN failure in arrow-ipc-read-write-test
> -----------------------------------------------
>
> Key: ARROW-16574
> URL: https://issues.apache.org/jira/browse/ARROW-16574
> Project: Apache Arrow
> Issue Type: Bug
> Components: C++
> Reporter: Weston Pace
> Assignee: Weston Pace
> Priority: Major
> Labels: pull-request-available
> Fix For: 9.0.0
>
> Attachments: tsan-failure.log
>
> Time Spent: 2h 20m
> Remaining Estimate: 0h
>
> https://github.com/ursacomputing/crossbow/runs/6416775759?check_suite_focus=true
> Attaching the log in case the CI job expires. Relevant portion:
> {noformat}
> 2022-05-13T03:37:00.5908939Z [----------] 1 test from PreBuffering
> 2022-05-13T03:37:00.5909275Z [ RUN ] PreBuffering.MixedAccess
> 2022-05-13T03:37:00.5909562Z ==================
> 2022-05-13T03:37:00.5909980Z WARNING: ThreadSanitizer: data race (pid=17726)
> 2022-05-13T03:37:00.5910339Z Write of size 8 at 0x7b5400000d90 by thread T3:
> 2022-05-13T03:37:00.5911076Z #0
> arrow::ipc::RecordBatchFileReaderImpl::ReadMessageFromBlock(arrow::ipc::internal::FileBlock
> const&, std::function<arrow::Status (void const*,
> arrow::io::RandomAccessFile*)> const&)
> /arrow/cpp/src/arrow/ipc/reader.cc:1389:5 (libarrow.so.900+0x3cb999a)
> 2022-05-13T03:37:00.5911981Z #1
> arrow::ipc::RecordBatchFileReaderImpl::ReadDictionaries()
> /arrow/cpp/src/arrow/ipc/reader.cc:1397:7 (libarrow.so.900+0x3cb9d5a)
> 2022-05-13T03:37:00.5912951Z #2
> arrow::ipc::RecordBatchFileReaderImpl::EnsureDictionaryReadStarted()::'lambda'()::operator()()
> const /arrow/cpp/src/arrow/ipc/reader.cc:1449:20 (libarrow.so.900+0x3cbcde2)
> 2022-05-13T03:37:00.5915049Z #3
> std::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()<arrow::ipc::RecordBatchFileReaderImpl::EnsureDictionaryReadStarted()::'lambda'(),
> arrow::Status, arrow::Future<arrow::internal::Empty>
> >(arrow::Future<arrow::internal::Empty>,
> arrow::ipc::RecordBatchFileReaderImpl::EnsureDictionaryReadStarted()::'lambda'()&&)
> const /arrow/cpp/src/arrow/util/future.h:148:23 (libarrow.so.900+0x3cbcd14)
> 2022-05-13T03:37:00.5917399Z #4 void
> arrow::detail::ContinueFuture::IgnoringArgsIf<arrow::ipc::RecordBatchFileReaderImpl::EnsureDictionaryReadStarted()::'lambda'(),
> arrow::Future<arrow::internal::Empty>, arrow::internal::Empty
> const&>(std::integral_constant<bool, true>,
> arrow::Future<arrow::internal::Empty>&&,
> arrow::ipc::RecordBatchFileReaderImpl::EnsureDictionaryReadStarted()::'lambda'()&&,
> arrow::internal::Empty const&) const
> /arrow/cpp/src/arrow/util/future.h:186:5 (libarrow.so.900+0x3cbcb46)
> ...
> 2022-05-13T03:37:00.6038343Z Previous write of size 8 at 0x7b5400000d90 by
> main thread:
> 2022-05-13T03:37:00.6039259Z #0
> arrow::ipc::RecordBatchFileReaderImpl::DoPreBufferMetadata(std::vector<int,
> std::allocator<int> > const&)::'lambda'()::operator()() const
> /arrow/cpp/src/arrow/ipc/reader.cc:1348:13 (libarrow.so.900+0x3cbdb0c)
> 2022-05-13T03:37:00.6042008Z #1
> std::enable_if<((!(std::is_void<arrow::Result<std::shared_ptr<arrow::ipc::Message>
> > >::value)) &&
> (!(is_future<arrow::Result<std::shared_ptr<arrow::ipc::Message> > >::value)))
> && ((!(arrow::Future<std::shared_ptr<arrow::ipc::Message> >::is_empty)) ||
> (std::is_same<arrow::Result<std::shared_ptr<arrow::ipc::Message> >,
> arrow::Status>::value)), void>::type
> arrow::detail::ContinueFuture::operator()<arrow::ipc::RecordBatchFileReaderImpl::DoPreBufferMetadata(std::vector<int,
> std::allocator<int> > const&)::'lambda'(),
> arrow::Result<std::shared_ptr<arrow::ipc::Message> >,
> arrow::Future<std::shared_ptr<arrow::ipc::Message> >
> >(arrow::Future<std::shared_ptr<arrow::ipc::Message> >,
> arrow::ipc::RecordBatchFileReaderImpl::DoPreBufferMetadata(std::vector<int,
> std::allocator<int> > const&)::'lambda'()&&) const
> /arrow/cpp/src/arrow/util/future.h:148:23 (libarrow.so.900+0x3cbd9d7)
> 2022-05-13T03:37:00.6045037Z #2 void
> arrow::detail::ContinueFuture::IgnoringArgsIf<arrow::ipc::RecordBatchFileReaderImpl::DoPreBufferMetadata(std::vector<int,
> std::allocator<int> > const&)::'lambda'(),
> arrow::Future<std::shared_ptr<arrow::ipc::Message> >, arrow::internal::Empty
> const&>(std::integral_constant<bool, true>,
> arrow::Future<std::shared_ptr<arrow::ipc::Message> >&&,
> arrow::ipc::RecordBatchFileReaderImpl::DoPreBufferMetadata(std::vector<int,
> std::allocator<int> > const&)::'lambda'()&&, arrow::internal::Empty const&)
> const /arrow/cpp/src/arrow/util/future.h:186:5 (libarrow.so.900+0x3cbd806)
> 2022-05-13T03:37:00.6047374Z #3
> arrow::Future<arrow::internal::Empty>::ThenOnComplete<arrow::ipc::RecordBatchFileReaderImpl::DoPreBufferMetadata(std::vector<int,
> std::allocator<int> > const&)::'lambda'(),
> arrow::Future<arrow::internal::Empty>::PassthruOnFailure<arrow::ipc::RecordBatchFileReaderImpl::DoPreBufferMetadata(std::vector<int,
> std::allocator<int> > const&)::'lambda'()>
> >::operator()(arrow::Result<arrow::internal::Empty> const&) &&
> /arrow/cpp/src/arrow/util/future.h:599:25 (libarrow.so.900+0x3cbd628)
> 2022-05-13T03:37:00.6049740Z #4
> arrow::Future<arrow::internal::Empty>::WrapResultyOnComplete::Callback<arrow::Future<arrow::internal::Empty>::ThenOnComplete<arrow::ipc::RecordBatchFileReaderImpl::DoPreBufferMetadata(std::vector<int,
> std::allocator<int> > const&)::'lambda'(),
> arrow::Future<arrow::internal::Empty>::PassthruOnFailure<arrow::ipc::RecordBatchFileReaderImpl::DoPreBufferMetadata(std::vector<int,
> std::allocator<int> > const&)::'lambda'()> > >::operator()(arrow::FutureImpl
> const&) && /arrow/cpp/src/arrow/util/future.h:496:9
> (libarrow.so.900+0x3cbd53d)
> 2022-05-13T03:37:00.6052338Z #5 arrow::internal::FnOnce<void
> (arrow::FutureImpl
> const&)>::FnImpl<arrow::Future<arrow::internal::Empty>::WrapResultyOnComplete::Callback<arrow::Future<arrow::internal::Empty>::ThenOnComplete<arrow::ipc::RecordBatchFileReaderImpl::DoPreBufferMetadata(std::vector<int,
> std::allocator<int> > const&)::'lambda'(),
> arrow::Future<arrow::internal::Empty>::PassthruOnFailure<arrow::ipc::RecordBatchFileReaderImpl::DoPreBufferMetadata(std::vector<int,
> std::allocator<int> > const&)::'lambda'()> > > >::invoke(arrow::FutureImpl
> const&) /arrow/cpp/src/arrow/util/functional.h:152:42
> (libarrow.so.900+0x3cbd4c4)
> ...
> {noformat}
--
This message was sent by Atlassian Jira
(v8.20.7#820007)