Hi Tim. It is so great to hear from you. I have tried these two commands you have provided: nm -g be/build/debug/service/libfesupport.so | grep ZN6impala18TimestampFunctions12UtcTimestampEPN10impala nm -g be/build/debug/service/impalad | grep ZN6impala18TimestampFunctions12UtcTimestampEPN10impala Both of them return NOTHING.
But if I use these two commands, I can get: strings be/build/debug/service/libfesupport.so | grep ZN6impala18TimestampFunctions12UtcTimestampEPN10impala _ZN6impala18TimestampFunctions12UtcTimestampEPN10impala_udf15FunctionContextE strings be/build/debug/service/impalad | grep ZN6impala18TimestampFunctions12UtcTimestampEPN10impala _ZN6impala18TimestampFunctions12UtcTimestampEPN10impala_udf15FunctionContextE I will take a deeper investigation about this. As for the clean build, what I have done is: 1. remove all things under Impala/be/build directory; 2. call make clean; call Impala/bin/clean.sh 3. call Impala/buildall.sh Not sure step 1 and 2 can make the environment clean enough now. Thank you so much for your help. I think I have a clue now. :) -----Original Message----- From: Tim Armstrong [mailto:tarmstr...@cloudera.com] Sent: Friday, May 13, 2016 4:11 AM To: dev@impala.incubator.apache.org Subject: Re: Symbol not found issue when working on IMPALA-3504 Hi Youwei, Your steps seem right. One thing is that it might be libfesupport.so that it is trying to resolve the binary in: nm -g be/build/debug/service/libfesupport.so nm -g be/build/debug/service/impalad Make something just wasn't rebuilt. Did you try doing a clean buidl? - Tim On Thu, May 12, 2016 at 6:16 AM, Wang, Youwei A <youwei.a.w...@intel.com> wrote: > Greetings All. I am working on IMPALA-3504 right now. > https://issues.cloudera.org/browse/IMPALA-3504 > This JIRA basically wants to implement a UDF timestamp function. > Following is my process when working on this JIRA: > > 1. Back-end source code: > I have added an function entry in the file timestamp-functions.h: > static TimestampVal UtcTimestamp(FunctionContext* context); and added > corresponding implementation in the file timestamp-functions.cc. > > 2. Build back-end: > And after that, I first build impalad binary using make_debug.sh script. > After the impalad binary is generated, I run Linux "strings" command > to get the binary signature of the function like: > _ZN6impala18TimestampFunctions12UtcTimestampEPN10impala_udf15FunctionContextE. > And this entry is also added to the > Impala/common/function-registry/impala_functions.py file like: > [['utc_timestamp'], 'TIMESTAMP', [], > '_ZN6impala18TimestampFunctions12UtcTimestampEPN10impala_udf15Function > ContextE'], > > 3. Overall build: > Then I execute the buildall.sh script to initiate build all front-end, > back-end and third-party tools. > > Issue: > When the build process is done, I use the > command:"start-impala-cluster.py -r --build_type=debug" to start the > Impala cluster. However, the impalad process fails to run due to the > error which is copied from Impala/logs/cluster/impalad.INFO: > > I0512 20:35:46.621750 31842 init.cc:204] Physical Memory: 11.69 GB > I0512 20:35:46.621752 31842 init.cc:205] OS version: Linux version > 4.5.3 > (root@debian) (gcc version 4.9.2 (Debian 4.9.2-10) ) #1 SMP Tue May 10 > 09:19:36 EDT 2016 > Clock: clocksource: 'tsc', clockid_t: CLOCK_MONOTONIC > I0512 20:35:46.621754 31842 init.cc:206] Process ID: 31842 > I0512 20:35:47.307698 31842 status.cc:40] Kudu is not supported on > this operating system. > @ 0x10de550 impala::Status::Status() > @ 0x10e1984 impala::CheckKuduAvailability() > @ 0x10e18f7 impala::KuduIsAvailable() > @ 0x10d89c1 impala::InitCommonRuntime() > @ 0x1446db1 ImpaladMain() > @ 0x1088720 main > @ 0x7f214e93ab45 (unknown) > @ 0x108859c (unknown) > I0512 20:35:47.689296 31842 hbase-table-scanner.cc:161] Detected HBase > version >= 0.95.2 > I0512 20:35:47.700866 31842 GlogAppender.java:123] Logging initialized. > Impala: VLOG, All other: INFO > I0512 20:35:47.702227 31842 JniFrontend.java:125] Authorization is > 'DISABLED'. > I0512 20:35:47.702286 31842 JniFrontend.java:127] Java Version Info: > Java(TM) SE Runtime Environment (1.8.0_65-b17) > W0512 20:35:47.871737 31842 HiveConf.java:2721] HiveConf of name > hive.access.conf.url does not exist > I0512 20:35:47.958432 31842 fe-support.cc:201] Could not find symbol > '_ZN6impala18TimestampFunctions12UtcTimestampEPN10impala_udf15FunctionContextE' > in: > Unable to find > _ZN6impala18TimestampFunctions12UtcTimestampEPN10impala_udf15FunctionC > ontextE > dlerror: /root/Impala/be/build/debug/service/impalad: undefined symbol: > _ZN6impala18TimestampFunctions12UtcTimestampEPN10impala_udf15FunctionC > ontextE > F0512 20:35:47.959112 31842 frontend.cc:107] java.lang.RuntimeException: > Builtin symbol > '_ZN6impala18TimestampFunctions12UtcTimestampEPN10impala_udf15Function > ContextE'[] > not found! > at > com.cloudera.impala.catalog.ScalarFunction.createBuiltin(ScalarFunction.java:79) > at com.cloudera.impala.catalog.Db.addScalarBuiltin(Db.java:389) > at com.cloudera.impala.catalog.Db.addScalarBuiltin(Db.java:379) > at > com.cloudera.impala.builtins.ScalarBuiltins.initBuiltins(ScalarBuiltins.java:124) > at > com.cloudera.impala.catalog.BuiltinsDb.initBuiltins(BuiltinsDb.java:58) > at > com.cloudera.impala.catalog.BuiltinsDb.<init>(BuiltinsDb.java:39) > at com.cloudera.impala.catalog.Catalog.<init>(Catalog.java:97) > at > com.cloudera.impala.catalog.ImpaladCatalog.<init>(ImpaladCatalog.java:92) > at > com.cloudera.impala.service.Frontend.<init>(Frontend.java:170) > at > com.cloudera.impala.service.JniFrontend.<init>(JniFrontend.java:129) > Caused by: com.cloudera.impala.common.AnalysisException: Could not > find symbol > '_ZN6impala18TimestampFunctions12UtcTimestampEPN10impala_udf15FunctionContextE' > in: > at > com.cloudera.impala.catalog.Function.lookupSymbol(Function.java:423) > at > com.cloudera.impala.catalog.ScalarFunction.createBuiltin(ScalarFunction.java:75) > ... 9 more > > This is really weird since such symbol > "ZN6impala18TimestampFunctions12UtcTimestampEPN10impala" is indeed in > the impalad binary and I have double-checked that. Actually I have > some successful experience of developing some UDF before. So this > issue really makes me feel confused. I have removed all built binaries > and replay the steps above. This issue still remains there. > > Thank you so much for any advice or hint. :) > > >