You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@impala.apache.org by "Balazs Jeszenszky (JIRA)" <ji...@apache.org> on 2019/02/15 17:27:00 UTC

[jira] [Resolved] (IMPALA-8206) Codegen crash on analytic functions in specific environments

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

Balazs Jeszenszky resolved IMPALA-8206.
---------------------------------------
       Resolution: Fixed
    Fix Version/s: Impala 2.10.0

Fixed indirectly (though I'm not sure which change was responsible).

> 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.7.0, Impala 2.8.0, Impala 2.9.0
>            Reporter: Balazs Jeszenszky
>            Priority: Blocker
>              Labels: crash
>             Fix For: Impala 2.10.0
>
>
> 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)