You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@arrow.apache.org by "David Li (Jira)" <ji...@apache.org> on 2021/12/23 14:51:00 UTC

[jira] [Assigned] (ARROW-15181) [C++][FlightRPC] Occasional crash on server shutdown

     [ https://issues.apache.org/jira/browse/ARROW-15181?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

David Li reassigned ARROW-15181:
--------------------------------

    Assignee: David Li

> [C++][FlightRPC] Occasional crash on server shutdown
> ----------------------------------------------------
>
>                 Key: ARROW-15181
>                 URL: https://issues.apache.org/jira/browse/ARROW-15181
>             Project: Apache Arrow
>          Issue Type: Bug
>          Components: C++, FlightRPC
>            Reporter: David Li
>            Assignee: David Li
>            Priority: Major
>
> Observed in a PR.
> What the problem appears to be:
> {code:cpp}
>   Status Shutdown() {
>     if (self_pipe_.rfd == 0) {
>       // Already closed
>       return Status::OK();
>     }
>     if (PIPE_WRITE(self_pipe_.wfd, "0", 1) < 0 && errno != EAGAIN &&
>         errno != EWOULDBLOCK && errno != EINTR) {
>       return arrow::internal::IOErrorFromErrno(errno, "Could not unblock signal thread");
>     }
>     RETURN_NOT_OK(arrow::internal::FileClose(self_pipe_.rfd));
>     RETURN_NOT_OK(arrow::internal::FileClose(self_pipe_.wfd));
>     handle_signals_.join();
>     self_pipe_.rfd = 0;
>     self_pipe_.wfd = 0;
>     return Status::OK();
>   }
> {code}
> This closes the pipe, then joins the thread. The thread is running this:
> {code:cpp}
>   static void WaitForSignals(int fd) {
>     // Wait for a signal handler to write to the pipe
>     int8_t buf[1];
>     while (PIPE_READ(fd, /*buf=*/buf, /*count=*/1) == -1) {
>       if (errno == EINTR) {
>         continue;
>       }
>       ARROW_CHECK_OK(arrow::internal::IOErrorFromErrno(
>           errno, "Error while waiting for shutdown signal"));
>     }
>     auto instance = running_instance_.load();
>     if (instance != nullptr) {
>       instance->server_->Shutdown();
>     }
>   }
> {code}
> So it's possible that 1) we shutdown, 2) we close the pipe, 3) the thread calls PIPE_READ, 4) we get an error (errno 9, invalid fd) because the pipe was closed. We should either ignore the error (and break), or join the thread before closing the pipe.
> {noformat}
> [ RUN      ] TestFlightSqlServer.TestCommandGetExportedKeys
> /arrow/cpp/src/arrow/flight/server.cc:884:  Check failed: _s.ok() Operation failed: arrow::internal::IOErrorFromErrno( (*__errno_location ()), "Error while waiting for shutdown signal")
> Bad status: IOError: Error while waiting for shutdown signal. Detail: [errno 9] Bad file descriptor
> /opt/conda/envs/arrow/lib/libarrow.so.700(+0x12afab8)[0x7fe71fa07ab8]
> /opt/conda/envs/arrow/lib/libarrow.so.700(+0x12afa36)[0x7fe71fa07a36]
> /opt/conda/envs/arrow/lib/libarrow.so.700(+0x12afa58)[0x7fe71fa07a58]
> /opt/conda/envs/arrow/lib/libarrow.so.700(arrow::util::ArrowLog::~ArrowLog()+0x47)[0x7fe71fa07db7]
> /opt/conda/envs/arrow/lib/libarrow_flight.so.700(+0x1ef89c)[0x7fe721b9a89c]
> /opt/conda/envs/arrow/lib/libarrow_flight.so.700(+0x20456d)[0x7fe721baf56d]
> /opt/conda/envs/arrow/lib/libarrow_flight.so.700(+0x204414)[0x7fe721baf414]
> /opt/conda/envs/arrow/lib/libarrow_flight.so.700(+0x2042b8)[0x7fe721baf2b8]
> /opt/conda/envs/arrow/lib/libarrow_flight.so.700(+0x2041fc)[0x7fe721baf1fc]
> /opt/conda/envs/arrow/lib/libarrow_flight.so.700(+0x2032ed)[0x7fe721bae2ed]
> /opt/conda/envs/arrow/lib/libstdc++.so.6(+0xcc9d4)[0x7fe71e45a9d4]
> /lib/x86_64-linux-gnu/libpthread.so.0(+0x76db)[0x7fe71e5406db]
> /lib/x86_64-linux-gnu/libc.so.6(clone+0x3f)[0x7fe71e0be71f]
> Found core dump, printing backtrace:
> warning: core file may not match specified executable file.
> [New LWP 20513]
> [New LWP 20392]
> [New LWP 20393]
> [New LWP 20401]
> [New LWP 20430]
> [New LWP 20508]
> [New LWP 20509]
> [New LWP 20510]
> [New LWP 20511]
> [Thread debugging using libthread_db enabled]
> Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
> Core was generated by `/build/cpp/debug/arrow-flight-sql-test'.
> Program terminated with signal SIGABRT, Aborted.
> #0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
> 51	../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
> [Current thread is 1 (Thread 0x7fe710ffc700 (LWP 20513))]
> Thread 9 (Thread 0x7fe712ffe700 (LWP 20511)):
> #0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
> #1  0x00007fe71d4c03cb in absl::lts_20210324::synchronization_internal::Waiter::Wait(absl::lts_20210324::synchronization_internal::KernelTimeout) () from /opt/conda/envs/arrow/lib/libabsl_synchronization.so.2103.0.1
> #2  0x00007fe71d4c0283 in AbslInternalPerThreadSemWait_lts_20210324 () from /opt/conda/envs/arrow/lib/libabsl_synchronization.so.2103.0.1
> #3  0x00007fe71d4c2f41 in absl::lts_20210324::CondVar::WaitCommon(absl::lts_20210324::Mutex*, absl::lts_20210324::synchronization_internal::KernelTimeout) () from /opt/conda/envs/arrow/lib/libabsl_synchronization.so.2103.0.1
> #4  0x00007fe71ca7678c in gpr_cv_wait () from /opt/conda/envs/arrow/lib/./libgpr.so.20
> #5  0x00007fe71d78704d in timer_thread(void*) () from /opt/conda/envs/arrow/lib/libgrpc.so.20
> #6  0x00007fe71ca7c868 in grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void (*)(void*), void*, bool*, grpc_core::Thread::Options const&)::{lambda(void*)#1}::_FUN(void*) () from /opt/conda/envs/arrow/lib/./libgpr.so.20
> #7  0x00007fe71e5406db in start_thread (arg=0x7fe712ffe700) at pthread_create.c:463
> #8  0x00007fe71e0be71f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
> Thread 8 (Thread 0x7fe713fff700 (LWP 20510)):
> #0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
> #1  0x00007fe71d4c0367 in absl::lts_20210324::synchronization_internal::Waiter::Wait(absl::lts_20210324::synchronization_internal::KernelTimeout) () from /opt/conda/envs/arrow/lib/libabsl_synchronization.so.2103.0.1
> #2  0x00007fe71d4c0283 in AbslInternalPerThreadSemWait_lts_20210324 () from /opt/conda/envs/arrow/lib/libabsl_synchronization.so.2103.0.1
> #3  0x00007fe71d4c2f41 in absl::lts_20210324::CondVar::WaitCommon(absl::lts_20210324::Mutex*, absl::lts_20210324::synchronization_internal::KernelTimeout) () from /opt/conda/envs/arrow/lib/libabsl_synchronization.so.2103.0.1
> #4  0x00007fe71ca767b0 in gpr_cv_wait () from /opt/conda/envs/arrow/lib/./libgpr.so.20
> #5  0x00007fe71d770327 in grpc_core::Executor::ThreadMain(void*) () from /opt/conda/envs/arrow/lib/libgrpc.so.20
> #6  0x00007fe71ca7c868 in grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void (*)(void*), void*, bool*, grpc_core::Thread::Options const&)::{lambda(void*)#1}::_FUN(void*) () from /opt/conda/envs/arrow/lib/./libgpr.so.20
> #7  0x00007fe71e5406db in start_thread (arg=0x7fe713fff700) at pthread_create.c:463
> #8  0x00007fe71e0be71f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
> Thread 7 (Thread 0x7fe7193fd700 (LWP 20509)):
> #0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
> #1  0x00007fe71d4c0367 in absl::lts_20210324::synchronization_internal::Waiter::Wait(absl::lts_20210324::synchronization_internal::KernelTimeout) () from /opt/conda/envs/arrow/lib/libabsl_synchronization.so.2103.0.1
> #2  0x00007fe71d4c0283 in AbslInternalPerThreadSemWait_lts_20210324 () from /opt/conda/envs/arrow/lib/libabsl_synchronization.so.2103.0.1
> #3  0x00007fe71d4c2f41 in absl::lts_20210324::CondVar::WaitCommon(absl::lts_20210324::Mutex*, absl::lts_20210324::synchronization_internal::KernelTimeout) () from /opt/conda/envs/arrow/lib/libabsl_synchronization.so.2103.0.1
> #4  0x00007fe71ca767b0 in gpr_cv_wait () from /opt/conda/envs/arrow/lib/./libgpr.so.20
> #5  0x00007fe71d770327 in grpc_core::Executor::ThreadMain(void*) () from /opt/conda/envs/arrow/lib/libgrpc.so.20
> #6  0x00007fe71ca7c868 in grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void (*)(void*), void*, bool*, grpc_core::Thread::Options const&)::{lambda(void*)#1}::_FUN(void*) () from /opt/conda/envs/arrow/lib/./libgpr.so.20
> #7  0x00007fe71e5406db in start_thread (arg=0x7fe7193fd700) at pthread_create.c:463
> #8  0x00007fe71e0be71f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
> Thread 6 (Thread 0x7fe71a3fe700 (LWP 20508)):
> #0  0x00007fe71e541d2d in __GI___pthread_timedjoin_ex (threadid=140630399371008, thread_return=0x0, abstime=0x0, block=<optimized out>) at pthread_join_common.c:89
> #1  0x00007fe71e45a87f in __gthread_join (__value_ptr=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, __threadid=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>) at /home/conda/feedstock_root/build_artifacts/gcc_compilers_1634095553113/work/build/x86_64-conda-linux-gnu/libstdc++-v3/src/c++11/thread:669
> #2  std::thread::join (this=0x7fe71a3fc078) at /home/conda/feedstock_root/build_artifacts/gcc_compilers_1634095553113/work/build/x86_64-conda-linux-gnu/libstdc++-v3/include/bits/new_allocator.h:112
> #3  0x00007fe721b9a439 in arrow::flight::ServerSignalHandler::Shutdown (this=0x7fe71a3fc070) at /arrow/cpp/src/arrow/flight/server.cc:831
> #4  0x00007fe721b9a50d in arrow::flight::ServerSignalHandler::~ServerSignalHandler (this=0x7fe71a3fc070, __in_chrg=<optimized out>) at /arrow/cpp/src/arrow/flight/server.cc:837
> #5  0x00007fe721b9c0be in arrow::flight::FlightServerBase::Serve (this=0x7fe700011df0) at /arrow/cpp/src/arrow/flight/server.cc:986
> #6  0x0000561f8f499f3c in arrow::flight::sql::TestFlightSqlServer::RunServer (this=0x561f8f9b3b80) at /arrow/cpp/src/arrow/flight/sql/server_test.cc:196
> #7  0x0000561f8f498fa5 in arrow::flight::sql::TestFlightSqlServer::SetUp()::{lambda()#1}::operator()() const (__closure=0x561f8f96f598) at /arrow/cpp/src/arrow/flight/sql/server_test.cc:152
> #8  0x0000561f8f4c0cc0 in std::__invoke_impl<void, arrow::flight::sql::TestFlightSqlServer::SetUp()::{lambda()#1}>(std::__invoke_other, arrow::flight::sql::TestFlightSqlServer::SetUp()::{lambda()#1}&&) (__f=...) at /opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/9.4.0/bits/invoke.h:60
> #9  0x0000561f8f4c0bf9 in std::__invoke<arrow::flight::sql::TestFlightSqlServer::SetUp()::{lambda()#1}>(std::__invoke_result&&, (arrow::flight::sql::TestFlightSqlServer::SetUp()::{lambda()#1}&&)...) (__fn=...) at /opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/9.4.0/bits/invoke.h:95
> #10 0x0000561f8f4c0acb in std::thread::_Invoker<std::tuple<arrow::flight::sql::TestFlightSqlServer::SetUp()::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (this=0x561f8f96f598) at /opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/9.4.0/thread:244
> #11 0x0000561f8f4c090c in std::thread::_Invoker<std::tuple<arrow::flight::sql::TestFlightSqlServer::SetUp()::{lambda()#1}> >::operator()() (this=0x561f8f96f598) at /opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/9.4.0/thread:251
> #12 0x0000561f8f4bfa71 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<arrow::flight::sql::TestFlightSqlServer::SetUp()::{lambda()#1}> > >::_M_run() (this=0x561f8f96f590) at /opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/9.4.0/thread:195
> #13 0x00007fe71e45a9d4 in std::execute_native_thread_routine (__p=<optimized out>) at /home/conda/feedstock_root/build_artifacts/gcc_compilers_1634095553113/work/build/x86_64-conda-linux-gnu/libstdc++-v3/include/bits/new_allocator.h:82
> #14 0x00007fe71e5406db in start_thread (arg=0x7fe71a3fe700) at pthread_create.c:463
> #15 0x00007fe71e0be71f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
> Thread 5 (Thread 0x7fe70d3ff700 (LWP 20430)):
> #0  0x00007fe71e547065 in futex_abstimed_wait_cancelable (private=<optimized out>, abstime=0x7fe70d3fd420, expected=0, futex_word=0x7fe71ba0a790) at ../sysdeps/unix/sysv/linux/futex-internal.h:205
> #1  __pthread_cond_wait_common (abstime=0x7fe70d3fd420, mutex=0x7fe71ba0a7d8, cond=0x7fe71ba0a768) at pthread_cond_wait.c:539
> #2  __pthread_cond_timedwait (cond=cond@entry=0x7fe71ba0a768, mutex=mutex@entry=0x7fe71ba0a7d8, abstime=abstime@entry=0x7fe70d3fd420) at pthread_cond_wait.c:667
> #3  0x00007fe720d74a36 in background_thread_sleep (tsdn=<optimized out>, interval=<optimized out>, info=0x7fe71ba0a760) at src/background_thread.c:255
> #4  background_work_sleep_once (ind=<optimized out>, info=<optimized out>, tsdn=<optimized out>) at src/background_thread.c:307
> #5  background_work (ind=<optimized out>, tsd=<optimized out>) at src/background_thread.c:497
> #6  background_thread_entry () at src/background_thread.c:522
> #7  0x00007fe71e5406db in start_thread (arg=0x7fe70d3ff700) at pthread_create.c:463
> #8  0x00007fe71e0be71f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
> Thread 4 (Thread 0x7fe70ebff700 (LWP 20401)):
> #0  0x00007fe71e547065 in futex_abstimed_wait_cancelable (private=<optimized out>, abstime=0x7fe70ebfd420, expected=0, futex_word=0x7fe71ba0a6c4) at ../sysdeps/unix/sysv/linux/futex-internal.h:205
> #1  __pthread_cond_wait_common (abstime=0x7fe70ebfd420, mutex=0x7fe71ba0a708, cond=0x7fe71ba0a698) at pthread_cond_wait.c:539
> #2  __pthread_cond_timedwait (cond=cond@entry=0x7fe71ba0a698, mutex=mutex@entry=0x7fe71ba0a708, abstime=abstime@entry=0x7fe70ebfd420) at pthread_cond_wait.c:667
> #3  0x00007fe720d74a36 in background_thread_sleep (tsdn=<optimized out>, interval=<optimized out>, info=0x7fe71ba0a690) at src/background_thread.c:255
> #4  background_work_sleep_once (ind=<optimized out>, info=<optimized out>, tsdn=<optimized out>) at src/background_thread.c:307
> #5  background_work (ind=<optimized out>, tsd=<optimized out>) at src/background_thread.c:497
> #6  background_thread_entry () at src/background_thread.c:522
> #7  0x00007fe71e5406db in start_thread (arg=0x7fe70ebff700) at pthread_create.c:463
> #8  0x00007fe71e0be71f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
> Thread 3 (Thread 0x7fe71b3ff700 (LWP 20393)):
> #0  0x00007fe71e547065 in futex_abstimed_wait_cancelable (private=<optimized out>, abstime=0x7fe71b3fd420, expected=0, futex_word=0x7fe71ba0a5f4) at ../sysdeps/unix/sysv/linux/futex-internal.h:205
> #1  __pthread_cond_wait_common (abstime=0x7fe71b3fd420, mutex=0x7fe71ba0a638, cond=0x7fe71ba0a5c8) at pthread_cond_wait.c:539
> #2  __pthread_cond_timedwait (cond=cond@entry=0x7fe71ba0a5c8, mutex=mutex@entry=0x7fe71ba0a638, abstime=abstime@entry=0x7fe71b3fd420) at pthread_cond_wait.c:667
> #3  0x00007fe720d75166 in background_thread_sleep (tsdn=<optimized out>, interval=<optimized out>, info=<optimized out>) at src/background_thread.c:255
> #4  background_work_sleep_once (ind=0, info=<optimized out>, tsdn=<optimized out>) at src/background_thread.c:307
> #5  background_thread0_work (tsd=<optimized out>) at src/background_thread.c:452
> #6  background_work (ind=<optimized out>, tsd=<optimized out>) at src/background_thread.c:490
> #7  background_thread_entry () at src/background_thread.c:522
> #8  0x00007fe71e5406db in start_thread (arg=0x7fe71b3ff700) at pthread_create.c:463
> #9  0x00007fe71e0be71f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
> Thread 2 (Thread 0x7fe71bce2140 (LWP 20392)):
> #0  0x00007fe71e541d2d in __GI___pthread_timedjoin_ex (threadid=140630554568448, thread_return=0x0, abstime=0x0, block=<optimized out>) at pthread_join_common.c:89
> #1  0x00007fe71e45a87f in __gthread_join (__value_ptr=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, __threadid=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>) at /home/conda/feedstock_root/build_artifacts/gcc_compilers_1634095553113/work/build/x86_64-conda-linux-gnu/libstdc++-v3/src/c++11/thread:669
> #2  std::thread::join (this=0x561f8f96f570) at /home/conda/feedstock_root/build_artifacts/gcc_compilers_1634095553113/work/build/x86_64-conda-linux-gnu/libstdc++-v3/include/bits/new_allocator.h:112
> #3  0x0000561f8f49977b in arrow::flight::sql::TestFlightSqlServer::TearDown (this=0x561f8f9b3b80) at /arrow/cpp/src/arrow/flight/sql/server_test.cc:173
> #4  0x00007fe72259bc9c in testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void> (object=0x561f8f9b3b80, method=&virtual testing::Test::TearDown(), location=0x7fe7225b0989 "TearDown()") at /build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:2607
> #5  0x00007fe722592dd2 in testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void> (object=0x561f8f9b3b80, method=&virtual testing::Test::TearDown(), location=0x7fe7225b0989 "TearDown()") at /build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:2643
> #6  0x00007fe72256dc4e in testing::Test::Run (this=0x561f8f9b3b80) at /build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:2690
> #7  0x00007fe72256e63b in testing::TestInfo::Run (this=0x561f8f989390) at /build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:2861
> #8  0x00007fe72256f010 in testing::TestSuite::Run (this=0x561f8f9938c0) at /build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:3015
> #9  0x00007fe72257f31c in testing::internal::UnitTestImpl::RunAllTests (this=0x561f8f990d90) at /build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:5855
> #10 0x00007fe72259cce8 in testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> (object=0x561f8f990d90, method=(bool (testing::internal::UnitTestImpl::*)(testing::internal::UnitTestImpl * const)) 0x7fe72257eed8 <testing::internal::UnitTestImpl::RunAllTests()>, location=0x7fe7225b1468 "auxiliary test code (environments or event listeners)") at /build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:2607
> #11 0x00007fe722594064 in testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> (object=0x561f8f990d90, method=(bool (testing::internal::UnitTestImpl::*)(testing::internal::UnitTestImpl * const)) 0x7fe72257eed8 <testing::internal::UnitTestImpl::RunAllTests()>, location=0x7fe7225b1468 "auxiliary test code (environments or event listeners)") at /build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:2643
> #12 0x00007fe72257d7b7 in testing::UnitTest::Run (this=0x7fe7225dd260 <testing::UnitTest::GetInstance()::instance>) at /build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest.cc:5438
> #13 0x00007fe7225de919 in RUN_ALL_TESTS () at /build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/include/gtest/gtest.h:2490
> #14 0x00007fe7225de95c in main (argc=1, argv=0x7ffee00fe7a8) at /build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest_main.cc:52
> #15 0x00007fe71dfbebf7 in __libc_start_main (main=0x7fe7225de91b <main(int, char**)>, argc=1, argv=0x7ffee00fe7a8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffee00fe798) at ../csu/libc-start.c:310
> #16 0x0000561f8f45b7f9 in _start ()
> Thread 1 (Thread 0x7fe710ffc700 (LWP 20513)):
> #0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
> #1  0x00007fe71dfdd921 in __GI_abort () at abort.c:79
> #2  0x00007fe71fa07a3c in arrow::util::CerrLog::~CerrLog (this=0x7fe71402a570, __in_chrg=<optimized out>) at /arrow/cpp/src/arrow/util/logging.cc:72
> #3  0x00007fe71fa07a58 in arrow::util::CerrLog::~CerrLog (this=0x7fe71402a570, __in_chrg=<optimized out>) at /arrow/cpp/src/arrow/util/logging.cc:74
> #4  0x00007fe71fa07db7 in arrow::util::ArrowLog::~ArrowLog (this=0x7fe710ffa360, __in_chrg=<optimized out>) at /arrow/cpp/src/arrow/util/logging.cc:250
> #5  0x00007fe721b9a89c in arrow::flight::FlightServerBase::Impl::WaitForSignals (fd=14) at /arrow/cpp/src/arrow/flight/server.cc:884
> #6  0x00007fe721baf56d in std::__invoke_impl<void, void (*)(int), int> (__f=@0x7fe7000251a0: 0x7fe721b9a701 <arrow::flight::FlightServerBase::Impl::WaitForSignals(int)>) at /opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/9.4.0/bits/invoke.h:60
> #7  0x00007fe721baf414 in std::__invoke<void (*)(int), int> (__fn=@0x7fe7000251a0: 0x7fe721b9a701 <arrow::flight::FlightServerBase::Impl::WaitForSignals(int)>) at /opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/9.4.0/bits/invoke.h:95
> #8  0x00007fe721baf2b8 in std::thread::_Invoker<std::tuple<void (*)(int), int> >::_M_invoke<0ul, 1ul> (this=0x7fe700025198) at /opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/9.4.0/thread:244
> #9  0x00007fe721baf1fc in std::thread::_Invoker<std::tuple<void (*)(int), int> >::operator() (this=0x7fe700025198) at /opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/9.4.0/thread:251
> #10 0x00007fe721bae2ed in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(int), int> > >::_M_run (this=0x7fe700025190) at /opt/conda/envs/arrow/x86_64-conda-linux-gnu/include/c++/9.4.0/thread:195
> #11 0x00007fe71e45a9d4 in std::execute_native_thread_routine (__p=<optimized out>) at /home/conda/feedstock_root/build_artifacts/gcc_compilers_1634095553113/work/build/x86_64-conda-linux-gnu/libstdc++-v3/include/bits/new_allocator.h:82
> #12 0x00007fe71e5406db in start_thread (arg=0x7fe710ffc700) at pthread_create.c:463
> #13 0x00007fe71e0be71f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
> /build/cpp/src/arrow/flight/sql
>       Start 101: arrow-feather-test
>  {noformat}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)