amoeba commented on issue #45235:
URL: https://github.com/apache/arrow/issues/45235#issuecomment-2941158706

   Since I had a very reliable local reproduction, I tested 
https://github.com/apache/arrow/pull/46711 I think it's at least way better. I 
previous could get ASAN to fail within a couple seconds of running,
   
   ```
   while true; ASAN_OPTIONS=detect_leaks=1 
debug/arrow-dataset-dataset-writer-test || break; end;
   ```
   
   With your PR, I was able to run that loop for a few minutes but it did hang 
eventually:
   
   ```
   ...>8...
   [  FAILED  ] 1 test, listed below:
   [  FAILED  ] DatasetWriterTestFixture.MaxRowsOneWriteBackpresure
   
    1 FAILED TEST
   ==36691==LeakSanitizer has encountered a fatal error.
   ==36691==HINT: For debugging, try setting environment variable 
LSAN_OPTIONS=verbosity=1:log_threads=1
   ==36691==HINT: LeakSanitizer does not work under ptrace (strace, gdb, etc)
   ```
   
   I did manage to get a stack trace,
   
   <details>
   <summary> gdb bt dump</summary>
   
   ```
   (gdb) bt
   #0  0x00007ffb7b0a49ee in ?? () from /lib/x86_64-linux-gnu/libc.so.6
   #1  0x00007ffb7b099668 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
   #2  0x00007ffb7b099c9c in ?? () from /lib/x86_64-linux-gnu/libc.so.6
   #3  0x00007ffb7b09c515 in pthread_cond_clockwait () from 
/lib/x86_64-linux-gnu/libc.so.6
   #4  0x00007ffb81ae8f51 in std::__condvar::wait_until (this=0x50e000019e90, 
__m=..., __clock=1, __abs_time=...)
       at /usr/include/c++/14/bits/std_mutex.h:185
   #5  0x00007ffb81aec05d in 
std::condition_variable::__wait_until_impl<std::chrono::duration<long, 
std::ratio<1l, 1000000000l> > > (
       this=0x50e000019e90, __lock=..., __atime=std::chrono::_V2::steady_clock 
time_point = { 1052772720473ns })
       at /usr/include/c++/14/condition_variable:203
   #6  0x00007ffb81aeb70b in 
std::condition_variable::wait_until<std::chrono::duration<long, std::ratio<1l, 
1000000000l> > > (this=0x50e000019e90,
       __lock=..., __atime=std::chrono::_V2::steady_clock time_point = { 
1052772720473ns }) at /usr/include/c++/14/condition_variable:113
   #7  0x00007ffb81b2d2be in 
std::condition_variable::wait_until<std::chrono::_V2::steady_clock, 
std::chrono::duration<long, std::ratio<1l, 1000000000l> >, 
arrow::ConcreteFutureImpl::DoWait(double)::{lambda()#1}>(std::unique_lock<std::mutex>&,
 std::chrono::time_point<std::chrono::_V2::steady_clock, 
std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&, 
arrow::ConcreteFutureImpl::DoWait(double)::{lambda()#1}) (
       this=0x50e000019e90, __lock=..., __atime=std::chrono::_V2::steady_clock 
time_point = { 1052772720473ns }, __p=...)
       at /usr/include/c++/14/condition_variable:154
   #8  0x00007ffb81b2adc0 in std::condition_variable::wait_for<double, 
std::ratio<1l, 1l>, 
arrow::ConcreteFutureImpl::DoWait(double)::{lambda()#1}>(std::unique_lock<std::mutex>&,
 std::chrono::duration<double, std::ratio<1l, 1l> > const&, 
arrow::ConcreteFutureImpl::DoWait(double)::{lambda()#1}) (
       this=0x50e000019e90, __lock=..., __rtime=std::chrono::duration = { 64s 
}, __p=...) at /usr/include/c++/14/condition_variable:177
   #9  0x00007ffb81b29af6 in arrow::ConcreteFutureImpl::DoWait 
(this=0x50e000019e20, seconds=64)
       at /home/bryce/src/apache/arrow/cpp/src/arrow/util/future.cc:179
   #10 0x00007ffb81b24c05 in arrow::FutureImpl::Wait (this=0x50e000019e20, 
seconds=64)
       at /home/bryce/src/apache/arrow/cpp/src/arrow/util/future.cc:222
   #11 0x0000561a897f7083 in arrow::Future<arrow::internal::Empty>::Wait 
(this=0x5140000086b8, seconds=64)
       at /home/bryce/src/apache/arrow/cpp/src/arrow/util/future.h:395
   #12 0x0000561a897ee279 in 
arrow::dataset::internal::DatasetWriterTestFixture::EndWriterChecked 
(this=0x514000008640, writer=0x50200000a610)
       at 
/home/bryce/src/apache/arrow/cpp/src/arrow/dataset/dataset_writer_test.cc:116
   #13 0x0000561a897ca492 in 
arrow::dataset::internal::DatasetWriterTestFixture_MaxRowsOneWriteBackpresure_Test::TestBody
 (this=0x514000008640)
       at 
/home/bryce/src/apache/arrow/cpp/src/arrow/dataset/dataset_writer_test.cc:304
   #14 0x00007ffb87a2094e in 
testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void> 
(object=0x514000008640,
       method=&virtual testing::Test::TestBody(), location=0x7ffb87a37fdb "the 
test body")
       at 
/home/bryce/src/apache/arrow/cpp/build/_deps/googletest-src/googletest/src/gtest.cc:2653
   #15 0x00007ffb87a18d4b in 
testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void> 
(object=0x514000008640,
       method=&virtual testing::Test::TestBody(), location=0x7ffb87a37fdb "the 
test body")
       at 
/home/bryce/src/apache/arrow/cpp/build/_deps/googletest-src/googletest/src/gtest.cc:2689
   #16 0x00007ffb879f35d3 in testing::Test::Run (this=0x514000008640)
       at 
/home/bryce/src/apache/arrow/cpp/build/_deps/googletest-src/googletest/src/gtest.cc:2728
   #17 0x00007ffb879f3fd6 in testing::TestInfo::Run (this=0x512000002d40)
       at 
/home/bryce/src/apache/arrow/cpp/build/_deps/googletest-src/googletest/src/gtest.cc:2874
   #18 0x00007ffb879f48c4 in testing::TestSuite::Run (this=0x512000002440)
       at 
/home/bryce/src/apache/arrow/cpp/build/_deps/googletest-src/googletest/src/gtest.cc:3052
   #19 0x00007ffb87a04a82 in testing::internal::UnitTestImpl::RunAllTests 
(this=0x517000000400)
       at 
/home/bryce/src/apache/arrow/cpp/build/_deps/googletest-src/googletest/src/gtest.cc:6004
   #20 0x00007ffb87a21a04 in 
testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl,
 bool> (object=0x517000000400,
       method=(bool (testing::internal::UnitTestImpl::*)(class 
testing::internal::UnitTestImpl * const)) 0x7ffb87a046a6 
<testing::internal::UnitTestImpl::RunAllTests()>, location=0x7ffb87a38a80 
"auxiliary test code (environments or event listeners)")
       at 
/home/bryce/src/apache/arrow/cpp/build/_deps/googletest-src/googletest/src/gtest.cc:2653
   #21 0x00007ffb87a19f33 in 
testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl,
 bool> (object=0x517000000400,
       method=(bool (testing::internal::UnitTestImpl::*)(class 
testing::internal::UnitTestImpl * const)) 0x7ffb87a046a6 
<testing::internal::UnitTestImpl::RunAllTests()>, location=0x7ffb87a38a80 
"auxiliary test code (environments or event listeners)")
       at 
/home/bryce/src/apache/arrow/cpp/build/_deps/googletest-src/googletest/src/gtest.cc:2689
   #22 0x00007ffb87a0320e in testing::UnitTest::Run (this=0x7ffb87a66e00 
<testing::UnitTest::GetInstance()::instance>)
       at 
/home/bryce/src/apache/arrow/cpp/build/_deps/googletest-src/googletest/src/gtest.cc:5583
   #23 0x00007ffb87abe1a2 in RUN_ALL_TESTS () at 
/home/bryce/src/apache/arrow/cpp/build/_deps/googletest-src/googletest/include/gtest/gtest.h:2334
   #24 0x00007ffb87abe18e in main (argc=1, argv=0x7fff22e64898)
       at 
/home/bryce/src/apache/arrow/cpp/build/_deps/googletest-src/googletest/src/gtest_main.cc:64
   ```
   </details>
   
   I'll keep trying to reproduce that now.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to