Yuchen Fan created IMPALA-11449:
-----------------------------------

             Summary: C++ UDF built in Impala-2.12/3.4 can't be loaded in 
Impala-4.1
                 Key: IMPALA-11449
                 URL: https://issues.apache.org/jira/browse/IMPALA-11449
             Project: IMPALA
          Issue Type: Improvement
    Affects Versions: Impala 4.1.0
            Reporter: Yuchen Fan


After upgrade Impala from 3.4 to 4.1, we found that C++ UDFs built in previous 
Impala cannot be used in 4.1. Some symbols of Boost required by UDF shared 
library are difference from 3.4. We think it may be relation with IMPALA-11005. 
Some symbols is changed bacause of Boost is upgraded to 1.74. Errors is shown 
below.
{code:java}
Create execute plan failed :
org.apache.impala.common.AnalysisException: Could not load binary: 
hdfs://xxx/libimpala-udfs-34.so
Unable to load /xxx/libimpala-udfs-34.59000.36.so
dlerror: /xxx/libimpala-udfs-34.59000.36.so: undefined symbol: 
_ZN5boost9gregorian10greg_month17get_month_map_ptrEv        at 
org.apache.impala.catalog.Function.lookupSymbol(Function.java:482)
        at 
org.apache.impala.analysis.CreateUdfStmt.analyze(CreateUdfStmt.java:92)
        at 
org.apache.impala.analysis.AnalysisContext.analyze(AnalysisContext.java:510)
        at 
org.apache.impala.analysis.AnalysisContext.analyzeAndAuthorize(AnalysisContext.java:468)
        at 
org.apache.impala.service.Frontend.doCreateExecRequest(Frontend.java:2037)
        at 
org.apache.impala.service.Frontend.getTExecRequest(Frontend.java:1945)
        at 
org.apache.impala.service.Frontend.createExecRequest(Frontend.java:1769)
        at org.apache.impala.service.Frontend$4.run(Frontend.java:2735)
        at org.apache.impala.service.Frontend$4.run(Frontend.java:2731)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:360)
        at 
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1864)
        at 
org.apache.impala.service.Frontend.createExecRequestWithProxy(Frontend.java:2731)
        at 
org.apache.impala.service.JniFrontend.createExecRequest(JniFrontend.java:195)   
 @           0xea7dc1  impala::Status::Status()
    @          0x1830d65  impala::JniUtil::GetJniExceptionMsg()
    @          0x152c2db  impala::Frontend::GetExecRequest()
    @          0x1ddbb62  impala::QueryDriver::RunFrontendPlanner()
    @          0x15a8b8f  impala::ImpalaServer::ExecuteInternal()
    @          0x15aa4ab  impala::ImpalaServer::Execute()
    @          0x16d6d16  impala::ImpalaServer::query()
    @          0x15ff445  beeswax::BeeswaxServiceProcessorT<>::process_query()
    @          0x167a925  beeswax::BeeswaxServiceProcessorT<>::dispatchCall()
    @          0x167aed4  impala::ImpalaServiceProcessorT<>::dispatchCall()
    @           0xd9cc06  apache::thrift::TDispatchProcessor::process()
    @          0x12a08ae  
apache::thrift::server::TAcceptQueueServer::Task::run()
    @          0x128d8fc  impala::ThriftThread::RunRunnable()
    @          0x129007d  
boost::detail::function::void_function_obj_invoker0<>::invoke()
    @          0x191a327  impala::Thread::SuperviseThread()
    @          0x191d498  boost::detail::thread_data<>::run()
    @          0x23a4810  thread_proxy
    @     0x7f7f5c01de24  start_thread
    @     0x7f7f58aedbac  __clone
 {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to