XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Resolved
    • Critical
    • Resolution: Fixed
    • Impala 2.11.0
    • Impala 2.11.0
    • Backend
    • None

    Description

      LLVM has an interface to install a diagnostic handler to handle errors. The default behaviour will exit the process immediately, which is not desirable if the problem is something like a malformed IR UDF. See IMPALA-5999 for an example.

      http://llvm.org/doxygen/DiagnosticHandler_8h_source.html

      I can cause the Impala daemon to exit by inducing a linking error with an IR UDF:

      $hdfs dfs -cp /test-warehouse/test-udfs.ll /test-warehouse/test-udfs2.ll
      
      [localhost:21000] > create function identity(boolean) returns boolean
      location '/test-warehouse/test-udfs.ll' symbol='Identity';
      Query: create function identity(boolean) returns boolean
      location '/test-warehouse/test-udfs.ll' symbol='Identity'
      Fetched 0 row(s) in 0.21s
      [localhost:21000] > create function identity(int) returns int
      location '/test-warehouse/test-udfs2.ll' symbol='Identity';
      Query: create function identity(int) returns int
      location '/test-warehouse/test-udfs2.ll' symbol='Identity'
      Fetched 0 row(s) in 0.04s
      [localhost:21000] > select identity(bool_col), identity(int_col) from functional.alltypestiny;
      Query: select identity(bool_col), identity(int_col) from functional.alltypestiny
      Query submitted at: 2017-09-29 15:36:27 (Coordinator: http://tarmstrong-box:25000)
      Error communicating with impalad: TSocket read 0 bytes
      

      In the error log:

      error: Linking globals named 'global_array_2': symbol multiply defined!
      

      Attachments

        Activity

          People

            bikramjeet.vig Bikramjeet Vig
            tarmstrong Tim Armstrong
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: