Balazs Jeszenszky created IMPALA-8206: -----------------------------------------
Summary: Codegen crash on analytic functions in specific environments Key: IMPALA-8206 URL: https://issues.apache.org/jira/browse/IMPALA-8206 Project: IMPALA Issue Type: Bug Components: Backend Affects Versions: Impala 2.9.0, Impala 2.8.0, Impala 2.7.0 Reporter: Balazs Jeszenszky The following sequence crashes in certain Impala versions on certain environments: {code} create table test (c1 int, c2 decimal(2,2)); insert into test values (1,0.0); SELECT ROW_NUMBER() OVER (PARTITION BY a ORDER BY c1) b FROM (SELECT c1, (case when c2 = 1 then 1 else 0 end) as a FROM test) t; {code} Any analytic function will do. FATAL log: {code} F0212 06:58:45.937505 3119 llvm-codegen.cc:106] LLVM hit fatal error: Cannot select: 0x8e23130: i32 = X86ISD::CMP 0x61ff390, 0x61ffd10 0x61ff390: i1,ch = CopyFromReg 0x5c21830, Register:i1 %vreg72 0x8e23980: i1 = Register %vreg72 0x61ffd10: i1 = or 0x8e234c0, 0x87e0be0 0x8e234c0: i1,ch = CopyFromReg 0x5c21830, Register:i1 %vreg133 0x8e23ab0: i1 = Register %vreg133 0x87e0be0: i1,ch = CopyFromReg 0x5c21830, Register:i1 %vreg134 0x87b0720: i1 = Register %vreg134 In function: Compare {code} Minidump: {code} 0 libc-2.12.so + 0x325e5 1 libc-2.12.so + 0x33dc5 2 libc-2.12.so + 0x6b58 3 impalad!llvm::MCJIT::emitObject(llvm::Module*) + 0x119 4 0x7f98ab6a74c0 5 impalad!llvm::SelectionDAGISel::DoInstructionSelection() + 0x254 6 impalad!llvm::SelectionDAGISel::CodeGenAndEmitDAG() + 0x1d2 7 impalad!llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) + 0x36a 8 impalad!llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) + 0x48f 9 impalad!(anonymous namespace)::X86DAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) + 0x14 10 impalad!llvm::FPPassManager::runOnFunction(llvm::Function&) + 0x27a 11 impalad!llvm::legacy::PassManagerImpl::run(llvm::Module&) + 0x263 12 impalad!llvm::MCJIT::emitObject(llvm::Module*) + 0x119 13 impalad!llvm::MCJIT::generateCodeForModule(llvm::Module*) + 0x301 14 impalad!llvm::MCJIT::finalizeObject() + 0x110 15 impalad!impala::LlvmCodeGen::FinalizeModule() [llvm-codegen.cc : 937 + 0x2] 16 impalad!impala::PlanFragmentExecutor::OptimizeLlvmModule() [plan-fragment-executor.cc : 300 + 0xd] 17 impalad!impala::PlanFragmentExecutor::Open() [plan-fragment-executor.cc : 342 + 0x8] 18 impalad!impala::FragmentMgr::FragmentExecState::Exec() [fragment-exec-state.cc : 58 + 0xb] 19 impalad!impala::FragmentMgr::FragmentThread(impala::TUniqueId) [fragment-mgr.cc : 90 + 0xa] {code} Didn't test versions earlier than 2.7. We've used RHEL6.7. For the two environments where we managed to repro, lscpu gives: {code} Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 6 On-line CPU(s) list: 0-5 Thread(s) per core: 1 Core(s) per socket: 1 Socket(s): 6 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 61 Stepping: 2 CPU MHz: 2197.454 BogoMIPS: 4394.90 Hypervisor vendor: KVM Virtualization type: full L1d cache: 32K L1i cache: 32K L2 cache: 4096K NUMA node0 CPU(s): 0-5 {code} and {code} Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 40 On-line CPU(s) list: 0-39 Thread(s) per core: 2 Core(s) per socket: 10 Socket(s): 2 NUMA node(s): 2 Vendor ID: GenuineIntel CPU family: 6 Model: 85 Model name: Intel(R) Xeon(R) Gold 5115 CPU @ 2.40GHz Stepping: 4 CPU MHz: 2394.367 BogoMIPS: 4786.29 Virtualization: VT-x L1d cache: 32K L1i cache: 32K L2 cache: 1024K L3 cache: 14080K NUMA node0 CPU(s): 0-9,20-29 NUMA node1 CPU(s): 10-19,30-39 {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)