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

Tim Armstrong updated IMPALA-6930:
----------------------------------
    Priority: Trivial  (was: Minor)

> Empty --llvm_cpu_attr_whitelist startup argument triggers crash in LLVM
> -----------------------------------------------------------------------
>
>                 Key: IMPALA-6930
>                 URL: https://issues.apache.org/jira/browse/IMPALA-6930
>             Project: IMPALA
>          Issue Type: Bug
>          Components: Backend
>    Affects Versions: Impala 2.11.0
>            Reporter: Zoram Thanga
>            Priority: Trivial
>
> While investigating IMPALA-6764, I tripped on the following crash after 
> passing --llvm_cpu_attr_whitelist='' startup option to impalad. We should 
> probably guard against this empty argument string. This happened with LLVM 
> 3.9. I haven't tried the experiment with the latest code, which has LLVM 
> 5.0.1. It looks like a DCHECK/CHECK kind of crash in LLVM:
> {noformat}
> (gdb) bt
> #0  0x00007f4821417428 in __GI_raise (sig=sig@entry=6) at 
> ../sysdeps/unix/sysv/linux/raise.c:54
> #1  0x00007f482141902a in __GI_abort () at abort.c:89
> #2  0x00000000020ee124 in google::DumpStackTraceAndExit() ()
> #3  0x00000000020e4b9d in google::LogMessage::Fail() ()
> #4  0x00000000020e6442 in google::LogMessage::SendToLog() ()
> #5  0x00000000020e4577 in google::LogMessage::Flush() ()
> #6  0x00000000020e7b3e in google::LogMessageFatal::~LogMessageFatal() ()
> #7  0x0000000000d74f70 in impala::LlvmCodegenHandleError 
> (user_data=<optimized out>, reason=..., gen_crash_diag=<optimized out>)
>     at /home/zoram/Impala/be/src/codegen/llvm-codegen.cc:126
> #8  0x0000000002023baa in llvm::report_fatal_error(llvm::Twine const&, bool) 
> ()
> #9  0x0000000002023d4e in llvm::report_fatal_error(std::string const&, bool) 
> ()
> #10 0x0000000001691c9a in 
> llvm::SelectionDAGISel::CannotYetSelect(llvm::SDNode*) ()
> #11 0x00000000016955bf in 
> llvm::SelectionDAGISel::SelectCodeCommon(llvm::SDNode*, unsigned char const*, 
> unsigned int) ()
> #12 0x0000000001494f8f in (anonymous 
> namespace)::X86DAGToDAGISel::Select(llvm::SDNode*) ()
> #13 0x0000000001690649 in llvm::SelectionDAGISel::DoInstructionSelection() ()
> #14 0x0000000001693301 in llvm::SelectionDAGISel::CodeGenAndEmitDAG() ()
> #15 0x000000000169a674 in 
> llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) ()
> #16 0x000000000169c4ff in 
> llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) ()
> #17 0x0000000001498424 in (anonymous 
> namespace)::X86DAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) ()
> #18 0x00000000018167d9 in 
> llvm::MachineFunctionPass::runOnFunction(llvm::Function&) ()
> #19 0x0000000001fac06a in llvm::FPPassManager::runOnFunction(llvm::Function&) 
> ()
> #20 0x0000000001fac693 in llvm::legacy::PassManagerImpl::run(llvm::Module&) ()
> #21 0x0000000001c9d3a9 in llvm::MCJIT::emitObject(llvm::Module*) ()
> #22 0x0000000001c9d8b5 in llvm::MCJIT::generateCodeForModule(llvm::Module*) ()
> #23 0x0000000001c9a180 in llvm::MCJIT::finalizeObject() ()
> #24 0x0000000000d834c2 in impala::LlvmCodeGen::FinalizeModule 
> (this=0xb73e580) at /home/zoram/Impala/be/src/codegen/llvm-codegen.cc:1120
> #25 0x0000000000b8a7b8 in impala::FragmentInstanceState::Open 
> (this=this@entry=0x7ccf4a0) at 
> /home/zoram/Impala/be/src/runtime/fragment-instance-state.cc:254
> #26 0x0000000000b8bcdf in impala::FragmentInstanceState::Exec 
> (this=this@entry=0x7ccf4a0) at 
> /home/zoram/Impala/be/src/runtime/fragment-instance-state.cc:81
> #27 0x0000000000b7ad96 in impala::QueryState::ExecFInstance (this=0x67bcd00, 
> fis=0x7ccf4a0) at /home/zoram/Impala/be/src/runtime/query-state.cc:386
> #28 0x0000000000d3504f in boost::function0<void>::operator() 
> (this=0x7f47bbae4d50)
>     at 
> /workspace/Impala/toolchain/boost-1.57.0-p3/include/boost/function/function_template.hpp:767
> #29 impala::Thread::SuperviseThread(std::string const&, std::string const&, 
> boost::function<void ()>, impala::Promise<long>*) (name=..., category=..., 
> functor=..., 
>     thread_started=<optimized out>) at 
> /home/zoram/Impala/be/src/util/thread.cc:354
> #30 0x0000000000d35843 in 
> boost::_bi::list4<boost::_bi::value<std::basic_string<char, 
> std::char_traits<char>, std::allocator<char> > >, 
> boost::_bi::value<std::basic_string<char, std::char_traits<char>, 
> std::allocator<char> > >, boost::_bi::value<boost::function<void()> >, 
> boost::_bi::value<impala::Promise<long int>*> >::operator()<void (*)(const 
> std::basic_string<char>&, const std::basic_string<char>&, 
> boost::function<void()>, impala::Promise<long int>*), boost::_bi::list0> (
>     f=@0x6b65db8: 0xd34dc0 <impala::Thread::SuperviseThread(std::string 
> const&, std::string const&, boost::function<void ()>, 
> impala::Promise<long>*)>, 
>     a=<synthetic pointer>, this=0x6b65dc0) at 
> /workspace/Impala/toolchain/boost-1.57.0-p3/include/boost/bind/bind.hpp:457
> #31 boost::_bi::bind_t<void, void (*)(std::string const&, std::string const&, 
> boost::function<void ()>, impala::Promise<long>*), 
> boost::_bi::list4<boost::_bi::value<std::string>, 
> boost::_bi::value<std::string>, boost::_bi::value<boost::function<void ()> >, 
> boost::_bi::value<impala::Promise<long>*> > >::operator()() (this=0x6b65db8)
>     at 
> /workspace/Impala/toolchain/boost-1.57.0-p3/include/boost/bind/bind_template.hpp:20
> #32 boost::detail::thread_data<boost::_bi::bind_t<void, void (*)(std::string 
> const&, std::string const&, boost::function<void ()>, 
> impala::Promise<long>*), boost::_bi::list4<boost::_bi::value<std::string>, 
> boost::_bi::value<std::string>, boost::_bi::value<boost::function<void ()> >, 
> boost::_bi::value<impala::Promise<long>*> > > >::run() (this=0x6b65c00) at 
> /workspace/Impala/toolchain/boost-1.57.0-p3/include/boost/thread/detail/thread.hpp:116
> #33 0x00000000012cea8a in thread_proxy ()
> #34 0x00007f48217b36ba in start_thread (arg=0x7f47bbae5700) at 
> pthread_create.c:333
> #35 0x00007f48214e941d in clone () at 
> ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
> {noformat}
> We see the following in the Impalad log:
> {noformat}
> I0425 10:30:49.423234  6135 hdfs-scan-node.cc:161] Max row batch queue size 
> for scan node '27' in fragment instance 'c547117b14900c82:133359b30000000a': 
> 50
> I0425 10:30:49.433096  6136 coordinator.cc:789] Coordinator waiting for 
> backends to finish, 1 remaining 
> F0425 10:30:49.454378  6128 llvm-codegen.cc:126] LLVM hit fatal error: Cannot 
> select: 0x758ab60: i64,glue = X86ISD::CMOV Constant:i64<0>, 0x758a070, 
> Constant:i8<4>, 0x758a230
>   0x758a2a0: i64 = Constant<0>
>   0x758a070: i64,ch = CopyFromReg 0x73c1a70, Register:i64 %vreg3
>     0x758a380: i64 = Register %vreg3
>   0x758a5b0: i8 = Constant<4>
>   0x758a230: i32 = X86ISD::CMP 0x758a930, Constant:i64<0>
>     0x758a930: i64 = AssertZext 0x758a150, ValueType:ch:i1
>       0x758a150: i64,ch = CopyFromReg 0x73c1a70, Register:i64 %vreg2
>         0x758a4d0: i64 = Register %vreg2
>     0x758a2a0: i64 = Constant<0>
> In function: impala::StringFunctions::LengthWrapper
> {noformat}
> The LLVM code is here: 
> http://llvm.org/doxygen/SelectionDAGISel_8cpp_source.html



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to