Uploaded image for project: 'IMPALA'
  1. IMPALA
  2. IMPALA-6435

Codegen crash when UNIONing CHAR(n) literals

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Blocker
    • Resolution: Fixed
    • Affects Version/s: Impala 2.8.0, Impala 2.9.0, Impala 2.10.0, Impala 2.11.0
    • Fix Version/s: Impala 2.12.0
    • Component/s: Backend
    • Labels:
    • Docs Text:
      Workaround: disable expression rewrites by setting the query option enable_expr_rewrites=0
    • Target Version:
    • Epic Color:
      ghx-label-8

      Description

      A simple repro:

      create table test (c1 int);
      select cast ('a' as char(30)) as m from test
      union all
      select cast ('a' as char(30)) as m from test
      ;
      

      Stack trace:

      #0  0x00007fb0085275e5 in raise () from /lib64/libc.so.6
      #1  0x00007fb008528dc5 in abort () from /lib64/libc.so.6
      #2  0x00007fb00a663a55 in os::abort(bool) () from /usr/java/jdk1.7.0_67-cloudera/jre/lib/amd64/server/libjvm.so
      #3  0x00007fb00a7e3f87 in VMError::report_and_die() ()
         from /usr/java/jdk1.7.0_67-cloudera/jre/lib/amd64/server/libjvm.so
      #4  0x00007fb00a66896f in JVM_handle_linux_signal ()
         from /usr/java/jdk1.7.0_67-cloudera/jre/lib/amd64/server/libjvm.so
      #5  <signal handler called>
      #6  0x0000000001a9042d in llvm::FunctionType::get(llvm::Type*, llvm::ArrayRef<llvm::Type*>, bool) ()
      #7  0x0000000000c2b62f in impala::LlvmCodeGen::FnPrototype::GeneratePrototype(impala::LlvmBuilder*, llvm::Value**, bool) ()
      #8  0x0000000000846617 in impala::Expr::CreateIrFunctionPrototype(impala::LlvmCodeGen*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, llvm::Value* (*) [2]) ()
      #9  0x000000000085960c in impala::Literal::GetCodegendComputeFn(impala::LlvmCodeGen*, llvm::Function**) ()
      #10 0x0000000000a78467 in impala::Tuple::CodegenMaterializeExprs(impala::LlvmCodeGen*, bool, impala::TupleDescriptor const&, std::vector<impala::ExprContext*, std::allocator<impala::ExprContext*> > const&, bool, llvm::Function**) ()
      #11 0x0000000000d11df8 in impala::UnionNode::Codegen(impala::RuntimeState*) ()
      #12 0x0000000000a7dd4e in impala::FragmentInstanceState::Prepare() ()
      #13 0x0000000000a7e311 in impala::FragmentInstanceState::Exec() ()
      #14 0x0000000000a6a2f6 in impala::QueryState::ExecFInstance(impala::FragmentInstanceState*) ()
      

      A debug build will fail a bit differently, hitting the DCHECK in codegen-anyval.cc.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                anujphadke Anuj Phadke
                Reporter:
                jeszyb Balazs Jeszenszky
              • Votes:
                0 Vote for this issue
                Watchers:
                6 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: