Skip to content

[C++] Fix ASAN issue in the arrow-dataset-dataset-writer-test #45235

Description

@wgtmac

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

https://github.com/apache/arrow/actions/runs/12739705161/job/35503788331?pr=45226

=================================================================
==9882==ERROR: LeakSanitizer: detected memory leaks
Indirect leak of 512 byte(s) in 1 object(s) allocated from:
#0 0x55777af7ebed in operator new(unsigned long) (/build/cpp/debug/arrow-dataset-dataset-writer-test+0x419bed) (BuildId: 22e936dc51f9bb18fc25ab7de9ec7c7ba97cc2c2)
#1 0x55777b1376c0 in __gnu_cxx::new_allocator<std::shared_ptr<arrow::RecordBatch> >::allocate(unsigned long, void const*) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/ext/new_allocator.h:127:27
#2 0x55777b13754c in std::allocator_traits<std::allocator<std::shared_ptr<arrow::RecordBatch> > >::allocate(std::allocator<std::shared_ptr<arrow::RecordBatch> >&, unsigned long) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/alloc_traits.h:464:20
#3 0x7f11941d29dc in std::_Deque_base<std::shared_ptr<arrow::RecordBatch>, std::allocator<std::shared_ptr<arrow::RecordBatch> > >::_M_allocate_node() /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_deque.h:562:9
#4 0x7f119420bdbd in std::_Deque_base<std::shared_ptr<arrow::RecordBatch>, std::allocator<std::shared_ptr<arrow::RecordBatch> > >::_M_create_nodes(std::shared_ptr<arrow::RecordBatch>**, std::shared_ptr<arrow::RecordBatch>**) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_deque.h:663:21
#5 0x7f119420ae17 in std::_Deque_base<std::shared_ptr<arrow::RecordBatch>, std::allocator<std::shared_ptr<arrow::RecordBatch> > >::_M_initialize_map(unsigned long) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_deque.h:637:4
#6 0x7f119420a2f4 in std::_Deque_base<std::shared_ptr<arrow::RecordBatch>, std::allocator<std::shared_ptr<arrow::RecordBatch> > >::_Deque_base() /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_deque.h:439:9
#7 0x7f119420a15f in std::deque<std::shared_ptr<arrow::RecordBatch>, std::allocator<std::shared_ptr<arrow::RecordBatch> > >::deque() /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_deque.h:834:7
#8 0x7f1194209e95 in arrow::dataset::internal::(anonymous namespace)::DatasetWriterFileQueue::DatasetWriterFileQueue(std::shared_ptr<arrow::Schema> const&, arrow::dataset::FileSystemDatasetWriteOptions const&, arrow::dataset::internal::(anonymous namespace)::DatasetWriterState*) /arrow/cpp/src/arrow/dataset/dataset_writer.cc:136:12
#9 0x7f1194208165 in std::_MakeUniq<arrow::dataset::internal::(anonymous namespace)::DatasetWriterFileQueue>::__single_object std::make_unique<arrow::dataset::internal::(anonymous namespace)::DatasetWriterFileQueue, std::shared_ptr<arrow::Schema>&, arrow::dataset::FileSystemDatasetWriteOptions const&, arrow::dataset::internal::(anonymous namespace)::DatasetWriterState*&>(std::shared_ptr<arrow::Schema>&, arrow::dataset::FileSystemDatasetWriteOptions const&, arrow::dataset::internal::(anonymous namespace)::DatasetWriterState*&) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/unique_ptr.h:962:34
#10 0x7f1194206a02 in arrow::dataset::internal::(anonymous namespace)::DatasetWriterDirectoryQueue::OpenFileQueue(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /arrow/cpp/src/arrow/dataset/dataset_writer.cc:343:9
#11 0x7f119418667a in arrow::dataset::internal::(anonymous namespace)::DatasetWriterDirectoryQueue::StartWrite(std::shared_ptr<arrow::RecordBatch> const&) /arrow/cpp/src/arrow/dataset/dataset_writer.cc:306:7
#12 0x7f119417fcdd in arrow::dataset::internal::DatasetWriter::DatasetWriterImpl::DoWriteRecordBatch(std::shared_ptr<arrow::RecordBatch>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /arrow/cpp/src/arrow/dataset/dataset_writer.cc:660:27
#13 0x7f119417c5b8 in arrow::dataset::internal::DatasetWriter::DatasetWriterImpl::WriteAndCheckBackpressure(std::shared_ptr<arrow::RecordBatch>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /arrow/cpp/src/arrow/dataset/dataset_writer.cc:539:14
#14 0x7f119417b6ba in arrow::dataset::internal::DatasetWriter::DatasetWriterImpl::WriteRecordBatch(std::shared_ptr<arrow::RecordBatch>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::'lambda'()::operator()() /arrow/cpp/src/arrow/dataset/dataset_writer.cc:565:15
#15 0x7f1194179b2b in arrow::util::AsyncTaskScheduler::SimpleTask<arrow::dataset::internal::DatasetWriter::DatasetWriterImpl::WriteRecordBatch(std::shared_ptr<arrow::RecordBatch>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::'lambda'()>::operator()() /arrow/cpp/src/arrow/util/async_util.h:153:53
#16 0x7f117fb90b19 in arrow::util::(anonymous namespace)::AsyncTaskGroupImpl::AddTask(std::unique_ptr<arrow::util::AsyncTaskScheduler::Task, std::default_delete<arrow::util::AsyncTaskScheduler::Task> >)::WrapperTask::operator()() /arrow/cpp/src/arrow/util/async_util.cc:433:9
#17 0x7f117fb7d938 in arrow::util::(anonymous namespace)::ThrottledAsyncTaskSchedulerImpl::SubmitTask(std::unique_ptr<arrow::util::AsyncTaskScheduler::Task, std::default_delete<arrow::util::AsyncTaskScheduler::Task> >, int, bool)::'lambda'()::operator()() /arrow/cpp/src/arrow/util/async_util.cc:351:11
#18 0x7f117fb7d356 in arrow::util::AsyncTaskScheduler::SimpleTask<arrow::util::(anonymous namespace)::ThrottledAsyncTaskSchedulerImpl::SubmitTask(std::unique_ptr<arrow::util::AsyncTaskScheduler::Task, std::default_delete<arrow::util::AsyncTaskScheduler::Task> >, int, bool)::'lambda'()>::operator()() /arrow/cpp/src/arrow/util/async_util.h:153:53
#19 0x7f117fb57813 in arrow::util::(anonymous namespace)::AsyncTaskSchedulerImpl::DoSubmitTask(std::unique_ptr<arrow::util::AsyncTaskScheduler::Task, std::default_delete<arrow::util::AsyncTaskScheduler::Task> >) /arrow/cpp/src/arrow/util/async_util.cc:197:38
#20 0x7f117fb55d31 in arrow::util::(anonymous namespace)::AsyncTaskSchedulerImpl::SubmitTaskUnlocked(std::unique_ptr<arrow::util::AsyncTaskScheduler::Task, std::default_delete<arrow::util::AsyncTaskScheduler::Task> >, std::unique_lock<std::mutex>&&) /arrow/cpp/src/arrow/util/async_util.cc:267:12
#21 0x7f117fb5548d in arrow::util::(anonymous namespace)::AsyncTaskSchedulerImpl::AddTask(std::unique_ptr<arrow::util::AsyncTaskScheduler::Task, std::default_delete<arrow::util::AsyncTaskScheduler::Task> >) /arrow/cpp/src/arrow/util/async_util.cc:173:5
#22 0x7f117fb7bf9a in bool arrow::util::AsyncTaskScheduler::AddSimpleTask<arrow::util::(anonymous namespace)::ThrottledAsyncTaskSchedulerImpl::SubmitTask(std::unique_ptr<arrow::util::AsyncTaskScheduler::Task, std::default_delete<arrow::util::AsyncTaskScheduler::Task> >, int, bool)::'lambda'()>(arrow::util::(anonymous namespace)::ThrottledAsyncTaskSchedulerImpl::SubmitTask(std::unique_ptr<arrow::util::AsyncTaskScheduler::Task, std::default_delete<arrow::util::AsyncTaskScheduler::Task> >, int, bool)::'lambda'(), std::basic_string_view<char, std::char_traits<char> >) /arrow/cpp/src/arrow/util/async_util.h:171:12
#23 0x7f117fb7544b in arrow::util::(anonymous namespace)::ThrottledAsyncTaskSchedulerImpl::SubmitTask(std::unique_ptr<arrow::util::AsyncTaskScheduler::Task, std::default_delete<arrow::util::AsyncTaskScheduler::Task> >, int, bool) /arrow/cpp/src/arrow/util/async_util.cc:348:21
#24 0x7f117fb7216a in arrow::util::(anonymous namespace)::ThrottledAsyncTaskSchedulerImpl::AddTask(std::unique_ptr<arrow::util::AsyncTaskScheduler::Task, std::default_delete<arrow::util::AsyncTaskScheduler::Task> >) /arrow/cpp/src/arrow/util/async_util.cc:331:14
#25 0x7f117fb87b6f in arrow::util::(anonymous namespace)::AsyncTaskGroupImpl::AddTask(std::unique_ptr<arrow::util::AsyncTaskScheduler::Task, std::default_delete<arrow::util::AsyncTaskScheduler::Task> >) /arrow/cpp/src/arrow/util/async_util.cc:446:21
#26 0x7f117fb999f8 in arrow::util::ThrottledAsyncTaskGroup::AddTask(std::unique_ptr<arrow::util::AsyncTaskScheduler::Task, std::default_delete<arrow::util::AsyncTaskScheduler::Task> >) /arrow/cpp/src/arrow/util/async_util.cc:511:25
#27 0x7f119417796a in bool arrow::util::AsyncTaskScheduler::AddSimpleTask<arrow::dataset::internal::DatasetWriter::DatasetWriterImpl::WriteRecordBatch(std::shared_ptr<arrow::RecordBatch>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::'lambda'()>(arrow::dataset::internal::DatasetWriter::DatasetWriterImpl::WriteRecordBatch(std::shared_ptr<arrow::RecordBatch>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::'lambda'(), std::basic_string_view<char, std::char_traits<char> >) /arrow/cpp/src/arrow/util/async_util.h:171:12
#28 0x7f119416c4cb in arrow::dataset::internal::DatasetWriter::DatasetWriterImpl::WriteRecordBatch(std::shared_ptr<arrow::RecordBatch>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /arrow/cpp/src/arrow/dataset/dataset_writer.cc:562:19
#29 0x7f119416bdec in arrow::dataset::internal::DatasetWriter::WriteRecordBatch(std::shared_ptr<arrow::RecordBatch>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /arrow/cpp/src/arrow/dataset/dataset_writer.cc:725:17

Component(s)

C++

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions