[ https://issues.apache.org/jira/browse/IMPALA-5926?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mostafa Mokhtar resolved IMPALA-5926. ------------------------------------- Resolution: Fixed > Avoid printing expensive stack when closing a session > ----------------------------------------------------- > > Key: IMPALA-5926 > URL: https://issues.apache.org/jira/browse/IMPALA-5926 > Project: IMPALA > Issue Type: Bug > Components: Backend > Reporter: Mostafa Mokhtar > Assignee: Mostafa Mokhtar > Priority: Major > Labels: ramp-up, trivial > > Noticed that session teardown is very slow due to printing expensive call > stack, this issue is very similar to IMPALA-5275. > From > https://github.com/apache/incubator-impala/blob/master/be/src/service/impala-server.cc#L1116 > {code} > // Unregister all open queries from this session. > Status status("Session closed"); > {code} > From vtune > {code} > CPU Time > 1 of 8: 72.4% (51.420s of 71.065s) > impalad ! google::OpenObjectFileContainingPcAndGetStartAddress - [unknown > source file] > impalad ! google::SymbolizeAndDemangle + 0x488 - [unknown source file] > impalad ! google::DumpStackTrace.constprop.9 + 0x6e - [unknown source file] > impalad ! impala::GetStackTrace + 0x1e - debug-util.cc:326 > impalad ! impala::Status::Status + 0x68 - status.cc:122 > impalad ! impala::ImpalaServer::CloseSessionInternal + 0x1f9 - > impala-server.cc:1116 > impalad ! impala::ImpalaServer::CloseSession + 0x11d - > impala-hs2-server.cc:383 > impalad ! > apache::hive::service::cli::thrift::TCLIServiceProcessor::process_CloseSession > + 0x215 - TCLIService.cpp:4587 > impalad ! > apache::hive::service::cli::thrift::TCLIServiceProcessor::dispatchCall + > 0x113 - TCLIService.cpp:4506 > impalad ! apache::thrift::TDispatchProcessor::process + 0xab - > TDispatchProcessor.h:121 > impalad ! apache::thrift::server::TThreadPoolServer::Task::run + 0x22a - > [unknown source file] > impalad ! apache::thrift::concurrency::ThreadManager::Worker::run + 0x2c8 - > [unknown source file] > impalad ! impala::ThriftThread::RunRunnable + 0x68 - thrift-thread.cc:74 > impalad ! boost::_mfi::mf2<void, impala::ThriftThread, > boost::shared_ptr<apache::thrift::concurrency::Runnable>, > impala::Promise<unsigned long>*>::operator() + 0x3a - mem_fn_template.hpp:280 > impalad ! operator()<boost::_mfi::mf2<void, impala::ThriftThread, > boost::shared_ptr<apache::thrift::concurrency::Runnable>, > impala::Promise<long unsigned int>*>, boost::_bi::list0> + 0x1e - bind.hpp:392 > impalad ! boost::_bi::bind_t<void, boost::_mfi::mf2<void, > impala::ThriftThread, > boost::shared_ptr<apache::thrift::concurrency::Runnable>, > impala::Promise<unsigned long>*>, > boost::_bi::list3<boost::_bi::value<impala::ThriftThread*>, > boost::_bi::value<boost::shared_ptr<apache::thrift::concurrency::Runnable>>, > boost::_bi::value<impala::Promise<unsigned long>*>>>::operator() - > bind_template.hpp:20 > impalad ! > boost::detail::function::void_function_obj_invoker0<boost::_bi::bind_t<void, > boost::_mfi::mf2<void, impala::ThriftThread, > boost::shared_ptr<apache::thrift::concurrency::Runnable>, > impala::Promise<unsigned long>*>, > boost::_bi::list3<boost::_bi::value<impala::ThriftThread*>, > boost::_bi::value<boost::shared_ptr<apache::thrift::concurrency::Runnable>>, > boost::_bi::value<impala::Promise<unsigned long>*>>>, void>::invoke + 0x9 - > function_template.hpp:153 > impalad ! boost::function0<void>::operator() + 0x1a - > function_template.hpp:767 > impalad ! impala::Thread::SuperviseThread + 0x1a7 - thread.cc:352 > impalad ! operator()<void (*)(const std::basic_string<char>&, const > std::basic_string<char>&, boost::function<void()>, impala::Promise<long > int>*), boost::_bi::list0> + 0x5a - bind.hpp:457 > impalad ! boost::_bi::bind_t<void, void (*)(std::string const&, std::string > const&, boost::function<void (void)>, impala::Promise<long>*), > boost::_bi::list4<boost::_bi::value<std::string>, > boost::_bi::value<std::string>, boost::_bi::value<boost::function<void > (void)>>, boost::_bi::value<impala::Promise<long>*>>>::operator() - > bind_template.hpp:20 > impalad ! boost::detail::thread_data<boost::_bi::bind_t<void, void > (*)(std::string const&, std::string const&, boost::function<void (void)>, > impala::Promise<long>*), boost::_bi::list4<boost::_bi::value<std::string>, > boost::_bi::value<std::string>, boost::_bi::value<boost::function<void > (void)>>, boost::_bi::value<impala::Promise<long>*>>>>::run + 0x19 - > thread.hpp:116 > impalad ! thread_proxy + 0xd9 - [unknown source file] > libpthread-2.17.so ! start_thread + 0xc4 - [unknown source file] > libc-2.17.so ! __clone + 0x6c - [unknown source file] > {code} > {code} > I0912 18:05:28.278861 32644 status.cc:122] Session closed > @ 0x8a1d59 impala::Status::Status() > @ 0xb0319a impala::ImpalaServer::CloseSessionInternal() > @ 0xb2be3e impala::ImpalaServer::CloseSession() > @ 0xdecc76 > apache::hive::service::cli::thrift::TCLIServiceProcessor::process_CloseSession() > @ 0xdf89d4 > apache::hive::service::cli::thrift::TCLIServiceProcessor::dispatchCall() > @ 0x8719cc apache::thrift::TDispatchProcessor::process() > @ 0x1c2cd6b > apache::thrift::server::TThreadPoolServer::Task::run() > @ 0x1c14709 > apache::thrift::concurrency::ThreadManager::Worker::run() > @ 0xa3a239 impala::ThriftThread::RunRunnable() > @ 0xa3b012 > boost::detail::function::void_function_obj_invoker0<>::invoke() > @ 0xc3c0c2 impala::Thread::SuperviseThread() > @ 0xc3c824 boost::detail::thread_data<>::run() > @ 0xf37a7a thread_proxy > @ 0x7fde88d22dc5 start_thread > @ 0x7fde88a5176d __clone > {code} > When there is a large number of queries finishing at the same time this > becomes more problematic as printing the stack trace acquires a lock which > blocks other queries trying to close the session. > A portion of this time shows up under "Unregister query" in the query > timeline. > {code} > Query Timeline: 2m7s > - Query submitted: 84.265us (84.265us) > - Planning finished: 622.838ms (622.754ms) > - Submit for admission: 664.240ms (41.401ms) > - Completed admission: 3s622ms (2s958ms) > - Ready to start on 7 backends: 3s716ms (94.521ms) > - All 7 execution backends (8 fragment instances) started: 6s835ms > (3s118ms) > - Rows available: 21s924ms (15s088ms) > - First row fetched: 22s187ms (263.418ms) > - Unregister query: 2m7s (1m45s) > - ComputeScanRangeAssignmentTimer: 26.472ms > {code} > This was captured when running 128 concurrent queries against the same > coordinator. -- This message was sent by Atlassian JIRA (v6.4.14#64029)