diff --git a/CHANGELOG.md b/CHANGELOG.md index 559caa637..b78191773 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -65,6 +65,7 @@ All notable changes to this project will be documented in this file. - testing-tools: Re-add `pytest` Python package as well as `diffutils` package ([#1388]). - testing-tools: Move Kerberos packages from testing-tools/hive to parent since they provide `kinit` which is needed in other tests too (ex. HBase). ([#1389]). +- hbase: Removed test class from backport HBASE-29797 to HBase version `2.6.3` ([#1426]). [#1336]: https://github.com/stackabletech/docker-images/pull/1336 [#1337]: https://github.com/stackabletech/docker-images/pull/1337 @@ -100,6 +101,7 @@ All notable changes to this project will be documented in this file. [#1422]: https://github.com/stackabletech/docker-images/pull/1422 [#1424]: https://github.com/stackabletech/docker-images/pull/1424 [#1425]: https://github.com/stackabletech/docker-images/pull/1425 +[#1426]: https://github.com/stackabletech/docker-images/pull/1426 ## [25.11.0] - 2025-11-07 diff --git a/hbase/README.md b/hbase/README.md index ed78e2e1f..8ee6d1ad3 100644 --- a/hbase/README.md +++ b/hbase/README.md @@ -12,3 +12,9 @@ SDP 24.7 included Phoenix built from the master branch from commit [4afe457](htt Repository: [hbase-operator-tools](https://github.com/apache/hbase-operator-tools) This is now mirrored and built from source using `patchable`. + +## Back-porting upstream changes + +Care needs to be taken when back-porting upstream changes due to changing dependencies. +A patch for multiple versions (that share the same major.minor version) may not work if dependencies have been introduced in the meantime. +e.g. HBASE-29797 can be applied to 2.6.4 directly, but not to 2.6.3 as test libraries were introduced between those versions. diff --git a/hbase/hbase-operator-tools/stackable/patches/1.3.0/0001-Add-CycloneDX-plugin.patch b/hbase/hbase-operator-tools/stackable/patches/1.3.0/0001-Add-CycloneDX-plugin.patch index 95f8a96f8..54e891354 100644 --- a/hbase/hbase-operator-tools/stackable/patches/1.3.0/0001-Add-CycloneDX-plugin.patch +++ b/hbase/hbase-operator-tools/stackable/patches/1.3.0/0001-Add-CycloneDX-plugin.patch @@ -1,6 +1,6 @@ -From 8616ee8b26bfbba285a36b91eb41a203a49b222a Mon Sep 17 00:00:00 2001 -From: dervoeti -Date: Thu, 13 Mar 2025 22:07:31 +0100 +From 44fd77d1f20a78dcc34ac9360ab8b4ed1e1d12af Mon Sep 17 00:00:00 2001 +From: Andrew Kenworthy +Date: Mon, 9 Feb 2026 18:15:04 +0100 Subject: Add CycloneDX plugin --- @@ -8,10 +8,10 @@ Subject: Add CycloneDX plugin 1 file changed, 17 insertions(+) diff --git a/pom.xml b/pom.xml -index caa032a..0025687 100644 +index 46e7f89..4903bb2 100644 --- a/pom.xml +++ b/pom.xml -@@ -549,6 +549,23 @@ +@@ -557,6 +557,23 @@ @@ -25,10 +25,10 @@ index caa032a..0025687 100644 + + + -+ -+ makeBom -+ -+ package ++ ++ makeBom ++ ++ package + + + diff --git a/hbase/hbase-operator-tools/stackable/patches/1.3.0/0002-Exclude-hbase-testing-utils-dependency-from-the-buil.patch b/hbase/hbase-operator-tools/stackable/patches/1.3.0/0002-Exclude-hbase-testing-utils-dependency-from-the-buil.patch index 4a986fe26..0a36cc8f5 100644 --- a/hbase/hbase-operator-tools/stackable/patches/1.3.0/0002-Exclude-hbase-testing-utils-dependency-from-the-buil.patch +++ b/hbase/hbase-operator-tools/stackable/patches/1.3.0/0002-Exclude-hbase-testing-utils-dependency-from-the-buil.patch @@ -1,4 +1,4 @@ -From f9e952767faf3032c0d4e729e51b5901fcf1a0e1 Mon Sep 17 00:00:00 2001 +From b589c5bae43f401c3c49a5c4b4d106c09343d32b Mon Sep 17 00:00:00 2001 From: Razvan-Daniel Mihai <84674+razvan@users.noreply.github.com> Date: Tue, 6 May 2025 17:58:34 +0200 Subject: Exclude hbase-testing-utils dependency from the build. @@ -9,7 +9,7 @@ Subject: Exclude hbase-testing-utils dependency from the build. 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/hbase-hbck2/pom.xml b/hbase-hbck2/pom.xml -index 1d57225..fd0018c 100644 +index 69af92e..7bebf32 100644 --- a/hbase-hbck2/pom.xml +++ b/hbase-hbck2/pom.xml @@ -114,12 +114,19 @@ @@ -35,7 +35,7 @@ index 1d57225..fd0018c 100644 org.mockito mockito-core diff --git a/hbase-tools/pom.xml b/hbase-tools/pom.xml -index 55ef075..eeebe14 100644 +index f9d94e8..1644c30 100644 --- a/hbase-tools/pom.xml +++ b/hbase-tools/pom.xml @@ -103,12 +103,13 @@ diff --git a/hbase/hbase-operator-tools/stackable/patches/1.3.0/0003-Configure-git-commit-id-plugin-to-use-native-git.patch b/hbase/hbase-operator-tools/stackable/patches/1.3.0/0003-Configure-git-commit-id-plugin-to-use-native-git.patch index 729432461..ad77dc2b1 100644 --- a/hbase/hbase-operator-tools/stackable/patches/1.3.0/0003-Configure-git-commit-id-plugin-to-use-native-git.patch +++ b/hbase/hbase-operator-tools/stackable/patches/1.3.0/0003-Configure-git-commit-id-plugin-to-use-native-git.patch @@ -1,6 +1,6 @@ -From 187db522edc569def2aea3f9453ecb1a674592fe Mon Sep 17 00:00:00 2001 -From: Razvan-Daniel Mihai <84674+razvan@users.noreply.github.com> -Date: Wed, 7 May 2025 10:26:37 +0200 +From 923efe9f649c947de8809f78cbc899d238545d05 Mon Sep 17 00:00:00 2001 +From: Andrew Kenworthy +Date: Tue, 10 Feb 2026 11:35:36 +0100 Subject: Configure git-commit-id-plugin to use native git This fixes the problem that jgit cannot handle worktrees and the build @@ -13,10 +13,10 @@ https://github.com/git-commit-id/git-commit-id-maven-plugin/issues/215 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hbase-hbck2/pom.xml b/hbase-hbck2/pom.xml -index fd0018c..f00bd18 100644 +index 7bebf32..e3c246f 100644 --- a/hbase-hbck2/pom.xml +++ b/hbase-hbck2/pom.xml -@@ -215,8 +215,9 @@ +@@ -214,8 +214,9 @@ pl.project13.maven git-commit-id-plugin diff --git a/hbase/hbase/stackable/patches/2.6.3/0008-Remove-test-class-that-requires-jupiter-libs.patch b/hbase/hbase/stackable/patches/2.6.3/0008-Remove-test-class-that-requires-jupiter-libs.patch new file mode 100644 index 000000000..1982b1972 --- /dev/null +++ b/hbase/hbase/stackable/patches/2.6.3/0008-Remove-test-class-that-requires-jupiter-libs.patch @@ -0,0 +1,97 @@ +From 6d1c6b265a91a5e8496dccc3bceec656f15629be Mon Sep 17 00:00:00 2001 +From: Andrew Kenworthy +Date: Mon, 9 Feb 2026 15:47:22 +0100 +Subject: remove test class that requires jupiter libs + +--- + .../hadoop/hbase/master/TestWALFencing.java | 81 ------------------- + 1 file changed, 81 deletions(-) + delete mode 100644 hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestWALFencing.java + +diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestWALFencing.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestWALFencing.java +deleted file mode 100644 +index 9341dcd5d9..0000000000 +--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestWALFencing.java ++++ /dev/null +@@ -1,81 +0,0 @@ +-/* +- * Licensed to the Apache Software Foundation (ASF) under one +- * or more contributor license agreements. See the NOTICE file +- * distributed with this work for additional information +- * regarding copyright ownership. The ASF licenses this file +- * to you under the Apache License, Version 2.0 (the +- * "License"); you may not use this file except in compliance +- * with the License. You may obtain a copy of the License at +- * +- * http://www.apache.org/licenses/LICENSE-2.0 +- * +- * Unless required by applicable law or agreed to in writing, software +- * distributed under the License is distributed on an "AS IS" BASIS, +- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +- * See the License for the specific language governing permissions and +- * limitations under the License. +- */ +-package org.apache.hadoop.hbase.master; +- +-import static org.awaitility.Awaitility.await; +- +-import java.io.IOException; +-import java.time.Duration; +-import java.util.Collections; +-import org.apache.hadoop.fs.FileStatus; +-import org.apache.hadoop.fs.Path; +-import org.apache.hadoop.hbase.HBaseTestingUtility; +-import org.apache.hadoop.hbase.TableName; +-import org.apache.hadoop.hbase.client.RegionInfo; +-import org.apache.hadoop.hbase.regionserver.HRegionServer; +-import org.apache.hadoop.hbase.regionserver.Region; +-import org.apache.hadoop.hbase.testclassification.MasterTests; +-import org.apache.hadoop.hbase.testclassification.MediumTests; +-import org.apache.hadoop.hbase.util.RecoverLeaseFSUtils; +-import org.junit.jupiter.api.AfterAll; +-import org.junit.jupiter.api.BeforeAll; +-import org.junit.jupiter.api.Tag; +-import org.junit.jupiter.api.Test; +- +-/** +- * Testcase for HBASE-29797, where the lazy initialized WALProvider may recreate the WAL directory +- * and cause our fencing way loses efficacy. +- */ +-@Tag(MasterTests.TAG) +-@Tag(MediumTests.TAG) +-public class TestWALFencing { +- +- private static final HBaseTestingUtility UTIL = new HBaseTestingUtility(); +- +- @BeforeAll +- public static void setUp() throws Exception { +- UTIL.startMiniCluster(3); +- UTIL.getAdmin().balancerSwitch(false, true); +- } +- +- @AfterAll +- public static void tearDown() throws IOException { +- UTIL.shutdownMiniCluster(); +- } +- +- @Test +- public void testMoveMeta() throws Exception { +- HRegionServer metaRs = UTIL.getRSForFirstRegionInTable(TableName.META_TABLE_NAME); +- HRegionServer otherRs = UTIL.getOtherRegionServer(metaRs); +- // do fencing here, i.e, kill otherRs +- Path splittingDir = UTIL.getMiniHBaseCluster().getMaster().getMasterWalManager() +- .getLogDirs(Collections.singleton(otherRs.getServerName())).get(0); +- for (FileStatus walFile : otherRs.getWALFileSystem().listStatus(splittingDir)) { +- RecoverLeaseFSUtils.recoverFileLease(otherRs.getWALFileSystem(), walFile.getPath(), +- otherRs.getConfiguration()); +- } +- // move meta region to otherRs, which should fail and crash otherRs, and then master will try to +- // assign meta region to another rs +- RegionInfo metaRegionInfo = metaRs.getRegions().stream().map(Region::getRegionInfo) +- .filter(RegionInfo::isMetaRegion).findAny().get(); +- UTIL.getAdmin().move(metaRegionInfo.getEncodedNameAsBytes(), otherRs.getServerName()); +- // make sure that meta region is not on otherRs +- await().during(Duration.ofSeconds(5)).atMost(Duration.ofSeconds(6)) +- .until(() -> otherRs.getRegions(TableName.META_TABLE_NAME).isEmpty()); +- } +-}