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

test_java_udfs crash impalad if result spooling is enabled

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Blocker
    • Resolution: Fixed
    • Impala 3.4.0
    • None
    • Backend
    • None
    • ghx-label-6

    Description

      The following test query from TestUdfExecution::test_java_udfs crash impalad when result spooling is enabled.

      select throws_exception() from functional.alltypestiny

      The following is a truncated JVM crash log related to the crash

      ---------------  T H R E A D  ---------------Current thread (0x000000000fb4c000):  JavaThread "Thread-700" [_thread_in_native, id=30853, stack(0x00007f79715ff000,0x00007f7971dff000)]Stack: [0x00007f79715ff000,0x00007f7971dff000],  sp=0x00007f7971dfa280,  free space=8172k
      Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
      V  [libjvm.so+0xb6b032]
      V  [libjvm.so+0x4f14bd]
      V  [libjvm.so+0x80fa8f]
      V  [libjvm.so+0x7e0991]
      V  [libjvm.so+0x69fa10]
      j  org.apache.impala.TestUdfException.evaluate()Lorg/apache/hadoop/io/BooleanWritable;+9
      v  ~StubRoutines::call_stub
      V  [libjvm.so+0x6af9ba]
      V  [libjvm.so+0xa1def8]
      V  [libjvm.so+0xa1f8d5]
      V  [libjvm.so+0x7610f8]  JVM_InvokeMethod+0x128
      J 2286  sun.reflect.NativeMethodAccessorImpl.invoke0(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (0 bytes) @ 0x00007f7acb553ced [0x00007f7acb553c00+0xed]
      J 6921 C2 sun.reflect.NativeMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (104 bytes) @ 0x00007f7acbd1de38 [0x00007f7acbd1ddc0+0x78]
      J 3645 C2 org.apache.impala.hive.executor.UdfExecutor.evaluate()V (396 bytes) @ 0x00007f7acaf6e894 [0x00007f7acaf6e640+0x254]
      v  ~StubRoutines::call_stub
      V  [libjvm.so+0x6af9ba]
      V  [libjvm.so+0x72c046]
      V  [libjvm.so+0x730523]
      C  0x00007f7ab4c5d0d0
      C  [impalad+0x26a2648]  impala::ScalarExprEvaluator::GetValue(impala::ScalarExpr const&, impala::TupleRow const*)+0x7a
      C  [impalad+0x26a25cb]  impala::ScalarExprEvaluator::GetValue(impala::TupleRow const*)+0x2b
      C  [impalad+0x21f4f78]  impala::AsciiQueryResultSet::AddRows(std::vector<impala::ScalarExprEvaluator*, std::allocator<impala::ScalarExprEvaluator*> > const&, impala::RowBatch*, int, int)+0x4c2
      C  [impalad+0x25c5862]  impala::BufferedPlanRootSink::GetNext(impala::RuntimeState*, impala::QueryResultSet*, int, bool*, long)+0x70c
      C  [impalad+0x296cf17]  impala::Coordinator::GetNext(impala::QueryResultSet*, int, bool*, long)+0x557
      C  [impalad+0x219f5fe]  impala::ClientRequestState::FetchRowsInternal(int, impala::QueryResultSet*, long)+0x6b2
      C  [impalad+0x219d98e]  impala::ClientRequestState::FetchRows(int, impala::QueryResultSet*, long)+0x46
      C  [impalad+0x21c1d29]  impala::ImpalaServer::FetchInternal(impala::TUniqueId, bool, int, beeswax::Results*)+0x717
      C  [impalad+0x21bbde9]  impala::ImpalaServer::fetch(beeswax::Results&, beeswax::QueryHandle const&, bool, int)+0x577
      

      If result spooling is enabled, BufferedPlanRootSink will be used and ScalarExprEvaluation will be called in BufferedPlanRootSink::GetNext, leading to this crash.

      Without result spooling, BlockingPlanRootSink will be used and ScalarExprEvaluation is called in BlockingPlanRootSink::Send. No crash happen when result spooling is disabled.

      Attached is the full JVM crash log and resolved minidump.

       

      Attachments

        1. 46a19881-resolved.txt
          4.71 MB
          Riza Suminto
        2. hs_err_pid12878.log
          193 kB
          Riza Suminto

        Issue Links

          Activity

            People

              daniel.becker Daniel Becker
              rizaon Riza Suminto
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: