[ https://issues.apache.org/jira/browse/ARROW-16574?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17537443#comment-17537443 ]
Antoine Pitrou commented on ARROW-16574: ---------------------------------------- [~westonpace] Do you intend to try and fix this? > [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 > Priority: Major > Attachments: tsan-failure.log > > > 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)