Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-24482

[hbase-operator-tools] build of hbck2 fails with HBase branch-2.3, due to missing dependencies



    • Release Note:
      Make it so tests and compile works against hbase-2.3.x as well as hbase-2.1.x.


      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

       Does anyone know if that was HBase's approach?


        1. HBASE-24482_compile_error.log
          3 kB
          Matthew Foley
        2. HBASE-24482_missing_symbols_part_2.log
          14 kB
          Matthew Foley
        3. 0001-HBASE-24482-hbase-operator-tools-build-of-hbck2-fail.patch
          28 kB
          Michael Stack



            • Assignee:
              stack Michael Stack
              mattf Matthew Foley
            • Votes:
              0 Vote for this issue
              4 Start watching this issue


              • Created: