[ 
https://issues.apache.org/jira/browse/PHOENIX-6755?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17571485#comment-17571485
 ] 

Rushabh Shah commented on PHOENIX-6755:
---------------------------------------

[~stoty] In our production environments, we don't use omid at all. In our 
downstream applications, to fix log4j vulnerabilities we have excluded all omid 
(transitive) dependencies from phoenix dependency and hence we observed this 
NoClassDefFoundError.

> SystemCatalogRegionObserver extends BaseRegionObserver which doesn't exist in 
> hbase-2.4 branch.
> -----------------------------------------------------------------------------------------------
>
>                 Key: PHOENIX-6755
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-6755
>             Project: Phoenix
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 5.1.2
>            Reporter: Rushabh Shah
>            Priority: Major
>             Fix For: 5.1.3
>
>
> One of our downstream services dependent on phoenix failed to startup with 
> this phoenix-5.1 version and hbase-2.4.10 branch. Stack trace is pasted below:
> {noformat}
> Exception in thread "main" java.lang.NoClassDefFoundError: 
> org/apache/hadoop/hbase/coprocessor/BaseRegionObserver
>         at java.lang.ClassLoader.defineClass1(Native Method)
>         at java.lang.ClassLoader.defineClass(ClassLoader.java:757)
>         at 
> java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
>         at java.net.URLClassLoader.defineClass(URLClassLoader.java:473)
>         at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
>         at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
>         at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:419)
>         at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:365)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:352)
>         at 
> org.apache.phoenix.query.ConnectionQueryServicesImpl.addCoprocessors(ConnectionQueryServicesImpl.java:1177)
>         at 
> org.apache.phoenix.query.ConnectionQueryServicesImpl.generateTableDescriptor(ConnectionQueryServicesImpl.java:968)
>         at 
> org.apache.phoenix.query.ConnectionQueryServicesImpl.ensureTableCreated(ConnectionQueryServicesImpl.java:1419)
>         at 
> org.apache.phoenix.query.ConnectionQueryServicesImpl.createTable(ConnectionQueryServicesImpl.java:1936)
>         at 
> org.apache.phoenix.schema.MetaDataClient.createTableInternal(MetaDataClient.java:3084)
>         at 
> org.apache.phoenix.schema.MetaDataClient.createTable(MetaDataClient.java:1111)
>         at 
> org.apache.phoenix.compile.CreateTableCompiler$CreateTableMutationPlan.execute(CreateTableCompiler.java:420)
>         at 
> org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:415)
>         at 
> org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:397)
>         at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
>         at 
> org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:396)
>         at 
> org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:384)
>         at 
> org.apache.phoenix.jdbc.PhoenixStatement.executeUpdate(PhoenixStatement.java:1906)
>         at 
> org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:3290)
>         at 
> org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:3253)
>         at 
> org.apache.phoenix.util.PhoenixContextExecutor.call(PhoenixContextExecutor.java:76)
>         at 
> org.apache.phoenix.query.ConnectionQueryServicesImpl.init(ConnectionQueryServicesImpl.java:3253)
>         at 
> org.apache.phoenix.jdbc.PhoenixDriver.getConnectionQueryServices(PhoenixDriver.java:255)
> Caused by: java.lang.ClassNotFoundException: 
> org.apache.hadoop.hbase.coprocessor.BaseRegionObserver
>         at java.net.URLClassLoader.findClass(URLClassLoader.java:387)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:419)
>         at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:365)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:352)
> {noformat}
> It is throwing NoClassDefFoundError java.lang.NoClassDefFoundError: 
> org/apache/hadoop/hbase/coprocessor/BaseRegionObserver
> ConnectionQueryServicesImpl.java#L1177 is as below:
> if (Arrays.equals(tableName, 
> SchemaUtil.getPhysicalName(SYSTEM_CATALOG_NAME_BYTES, props).getName())) {
>   if (!newDesc.hasCoprocessor(SystemCatalogRegionObserver.class.getName())) {
>    builder.addCoprocessor(
>    SystemCatalogRegionObserver.class.getName(), null, priority, null);
> }
> It is trying to load SystemCatalogRegionObserver class.
> Within integration tests, it is loading 
> org/apache/hadoop/hbase/coprocessor/BaseRegionObserver via omid dependency, 
> omid-hbase-shims-hbase2.x



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

Reply via email to