[
https://issues.apache.org/jira/browse/HBASE-26838?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Wellington Chevreuil resolved HBASE-26838.
------------------------------------------
Resolution: Fixed
Merged into master, then cherry-picked into branch-2, branch-2.4 and
branch-2.4. Thanks for reviewing it, [~elserj] , [~ndimiduk] !
> Junit jar is not included in the hbase tar ball, causing issues for some
> hbase tools that do rely on it
> --------------------------------------------------------------------------------------------------------
>
> Key: HBASE-26838
> URL: https://issues.apache.org/jira/browse/HBASE-26838
> Project: HBase
> Issue Type: Bug
> Components: integration tests, tooling
> Affects Versions: 2.5.0, 3.0.0-alpha-2, 2.6.0, 2.4.11
> Reporter: Wellington Chevreuil
> Assignee: Wellington Chevreuil
> Priority: Major
> Fix For: 2.5.0, 2.6.0, 3.0.0-alpha-3, 2.4.12
>
>
> We used to include junit jar on the generated tar ball lib directory. After
> some sanitisation of unnecessary libs for most of hbase processes, junit got
> removed from the packing, so that it don't end in hbase classpath by default.
> Some testing tools, however do depend on junit at runtime, and would now fail
> with NoClassDefFoundError, like
> [IntegrationTestIngest:|https://hbase.apache.org/book.html#chaos.monkey.properties]
> {noformat}
> 2022-03-14T21:54:50,483 INFO [main] client.AsyncConnectionImpl: Connection
> has been closed by main.
> Exception in thread "main" java.lang.NoClassDefFoundError: org/junit/Assert
> at
> org.apache.hadoop.hbase.IntegrationTestIngest.initTable(IntegrationTestIngest.java:101)
> at
> org.apache.hadoop.hbase.IntegrationTestIngest.setUpCluster(IntegrationTestIngest.java:92)
> at
> org.apache.hadoop.hbase.IntegrationTestBase.setUp(IntegrationTestBase.java:170)
> at
> org.apache.hadoop.hbase.IntegrationTestBase.doWork(IntegrationTestBase.java:153)
> at
> org.apache.hadoop.hbase.util.AbstractHBaseTool.run(AbstractHBaseTool.java:153)
> at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:76)
> at
> org.apache.hadoop.hbase.IntegrationTestIngest.main(IntegrationTestIngest.java:259)
> Caused by: java.lang.ClassNotFoundException: org.junit.Assert
> at
> java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
> at
> java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
> at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
> ... 7 more {noformat}
> Discussing with [~elserj] internally, we believe a reasonable solution would
> be to include junit jar back into the tarball, under "lib/test" dir so that
> it's not automatically added to hbase processes classpath, but still allow
> operators to manually define it in a convenient way, like below:
> {noformat}
> HBASE_CLASSPATH="$HBASE_HOME/lib/tests/*" hbase
> org.apache.hadoop.hbase.IntegrationTesngest -m slowDeterministic {noformat}
--
This message was sent by Atlassian Jira
(v8.20.1#820001)