You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Michael Stack (Jira)" <ji...@apache.org> on 2020/06/17 17:00:14 UTC
[jira] [Resolved] (HBASE-24482) [hbase-operator-tools] build of
hbck2 fails with HBase branch-2.3, due to missing dependencies
[ https://issues.apache.org/jira/browse/HBASE-24482?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Michael Stack resolved HBASE-24482.
-----------------------------------
Fix Version/s: hbase-operator-tools-1.1.0
Release Note: Make it so tests and compile works against hbase-2.3.x as well as hbase-2.1.x.
Assignee: Michael Stack
Resolution: Fixed
Resolving. Pushed w/ below commit:
{code}
commit 8d716173b6f713d3b375f9eef18189cf2f1a3745 (HEAD -> master, origin/master, origin/HEAD)
Author: stack <st...@apache.org>
Date: Wed Jun 17 09:49:32 2020 -0700
HBASE-24482 [hbase-operator-tools] build of hbck2 fails with HBase branch-2.3, due to missing dependencies
Make it so we compile and tests pass against hbase-2.3.x as
well as 2.1.x.
Remove use of @Nullable -- nice-to-have but dodgy provenance.
Use CommonFSUtils instead of FSUtils as latter no longer subclasses
CommonFSUtils whose utility we make use of in our import of hbck1
functionality (TODO: Undo this reliance on IA.Private)
hbase-hbck2/src/main/java/org/apache/hbase/FileSystemFsck.java
hbase-hbck2/src/main/java/org/apache/hbase/FsRegionsMetaRecoverer.java
hbase-hbck2/src/main/java/org/apache/hbase/hbck1/HBaseFsck.java
hbase-hbck2/src/main/java/org/apache/hbase/hbck1/HBaseFsckRepair.java
hbase-hbck2/src/main/java/org/apache/hbase/hbck1/HFileCorruptionChecker.java
hbase-hbck2/src/main/java/org/apache/hbase/hbck1/OfflineMetaRepair.java
hbase-hbck2/src/test/java/org/apache/hbase/TestHBCK2.java
s/CommonFSUtils/FSUtils/g
hbase-hbck2/src/main/java/org/apache/hbase/HBCKMetaTableAccessor.java
Purge @Nullable usage.
hbase-hbck2/src/test/java/org/apache/hbase/TestSchedulingRecoveries.java
Remove test that behaves differently between 2.1.x and 2.3.x hbase.
hbase-tools/src/test/java/org/apache/hbase/TestRegionsMerger.java
Amend test where merging works differently between hbase-2.3.x and
hbase-2.1.x (2.3 does more protective checks).
{code}
> [hbase-operator-tools] build of hbck2 fails with HBase branch-2.3, due to missing dependencies
> ----------------------------------------------------------------------------------------------
>
> Key: HBASE-24482
> URL: https://issues.apache.org/jira/browse/HBASE-24482
> Project: HBase
> Issue Type: Bug
> Components: hbase-operator-tools
> Affects Versions: hbase-operator-tools-1.1.0
> Reporter: Matthew Foley
> Assignee: Michael Stack
> Priority: Major
> Fix For: hbase-operator-tools-1.1.0
>
> Attachments: 0001-HBASE-24482-hbase-operator-tools-build-of-hbck2-fail.patch, HBASE-24482_compile_error.log, HBASE-24482_missing_symbols_part_2.log
>
>
> If we do a local build of the current HBase branch-2.3 as version 2.3.0-SNAPSHOT, and 'mvn install' it in the local maven repository,
> then attempt to build hbase-operator-tools master branch, with -Dhbase.version=2.3.0-SNAPSHOT,
> the HBCK2 class file HBCKMetaTableAccessor.java (line 25) fails to compile with error: "package edu.umd.cs.findbugs.annotations does not exist", followed by multiple instances of missing "symbol: class Nullable". (A longer log extract is attached.)
> It would appear the default HBase version 2.1.6 made this dependency package available in some manner, but the newer HBase does not.
> *Later Edit:* After addressing this missing dependency (see comment of 5 June below), it unmasked a bunch more, in the hbck1 code path. Please see second attachment.
> If the @Nullable annotation is still needed, it may be sufficient to simply add it to the hbase-operator-tools pom.xml file, so maven will load it. However, it is actually deprecated in the current documentation for edu.umd.cs.findbugs.annotations. Various commentary online suggest that we should be using the similar jsr305.jar (*{{javax.annotation)}}* instead; see eg
> * [https://stackoverflow.com/questions/4963300/which-notnull-java-annotation-should-i-use]
> Does anyone know if that was HBase's approach?
--
This message was sent by Atlassian Jira
(v8.3.4#803005)