From 9ec6c7bfd92e7794776f42d2de4e4b7d2fcdc20b Mon Sep 17 00:00:00 2001 From: Andrew Kenworthy Date: Mon, 9 Feb 2026 17:09:29 +0100 Subject: [PATCH 1/8] hbase: removed test class that required test dependencies only available in 2.6.4 --- hbase/README.md | 6 ++ ...est-class-that-requires-jupiter-libs.patch | 97 +++++++++++++++++++ 2 files changed, 103 insertions(+) create mode 100644 hbase/hbase/stackable/patches/2.6.3/0008-Remove-test-class-that-requires-jupiter-libs.patch 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/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()); +- } +-} From ca7125c017e6cb36f5d0af887e48e51de05469d4 Mon Sep 17 00:00:00 2001 From: Andrew Kenworthy Date: Mon, 9 Feb 2026 17:15:37 +0100 Subject: [PATCH 2/8] changelog --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) 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 From b8b79084097030013bf4242c0f36dab5a4e7ff4f Mon Sep 17 00:00:00 2001 From: Andrew Kenworthy Date: Mon, 9 Feb 2026 18:26:26 +0100 Subject: [PATCH 3/8] correct line numbers for operator tools patches --- .../1.3.0/0001-Add-CycloneDX-plugin.patch | 18 +++++------ ...sting-utils-dependency-from-the-buil.patch | 30 +++++++++---------- ...t-commit-id-plugin-to-use-native-git.patch | 15 ++++------ 3 files changed, 28 insertions(+), 35 deletions(-) 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..464977205 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,41 +1,39 @@ -From f9e952767faf3032c0d4e729e51b5901fcf1a0e1 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. +From 6eedb5a2a3db365ce9cd4574dd8bee32a444c53f Mon Sep 17 00:00:00 2001 +From: Andrew Kenworthy +Date: Mon, 9 Feb 2026 18:21:26 +0100 +Subject: Exclude hbase testing utils dependency from the build --- - hbase-hbck2/pom.xml | 11 +++++++++-- - hbase-tools/pom.xml | 5 +++-- - 2 files changed, 12 insertions(+), 4 deletions(-) + hbase-hbck2/pom.xml | 9 +++++++-- + hbase-tools/pom.xml | 5 +++-- + 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/hbase-hbck2/pom.xml b/hbase-hbck2/pom.xml -index 1d57225..fd0018c 100644 +index 69af92e..5bfad33 100644 --- a/hbase-hbck2/pom.xml +++ b/hbase-hbck2/pom.xml -@@ -114,12 +114,19 @@ +@@ -114,12 +114,17 @@ - + -+ ++ org.mockito mockito-core diff --git a/hbase-tools/pom.xml b/hbase-tools/pom.xml -index 55ef075..eeebe14 100644 +index f9d94e8..3b9da09 100644 --- a/hbase-tools/pom.xml +++ b/hbase-tools/pom.xml @@ -103,12 +103,13 @@ @@ -44,13 +42,13 @@ index 55ef075..eeebe14 100644 - + -+ ++ org.mockito mockito-core 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..592432cda 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,22 +1,17 @@ -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 9c25c222246a88fe1b15e73e4fabbe92e98db10e Mon Sep 17 00:00:00 2001 +From: Andrew Kenworthy +Date: Mon, 9 Feb 2026 18:24:16 +0100 Subject: Configure git-commit-id-plugin to use native git -This fixes the problem that jgit cannot handle worktrees and the build -fails. - -See -https://github.com/git-commit-id/git-commit-id-maven-plugin/issues/215 --- hbase-hbck2/pom.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hbase-hbck2/pom.xml b/hbase-hbck2/pom.xml -index fd0018c..f00bd18 100644 +index 5bfad33..f1df165 100644 --- a/hbase-hbck2/pom.xml +++ b/hbase-hbck2/pom.xml -@@ -215,8 +215,9 @@ +@@ -212,8 +212,9 @@ pl.project13.maven git-commit-id-plugin From 0d96bc71742333e463eb4cd4dae4703b9779b529 Mon Sep 17 00:00:00 2001 From: Andrew Kenworthy Date: Mon, 9 Feb 2026 18:32:46 +0100 Subject: [PATCH 4/8] missing text --- ...-Exclude-hbase-testing-utils-dependency-from-the-buil.patch | 2 ++ ...0003-Configure-git-commit-id-plugin-to-use-native-git.patch | 3 +++ 2 files changed, 5 insertions(+) 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 464977205..59fd391c8 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 @@ -19,7 +19,9 @@ index 69af92e..5bfad33 100644 - + + -+ ++ org.mockito mockito-core @@ -44,13 +44,13 @@ index f9d94e8..3b9da09 100644 - + -+ ++ org.mockito mockito-core From 5191f336bec91e3ab26d00010c73dcd983162c44 Mon Sep 17 00:00:00 2001 From: Andrew Kenworthy Date: Tue, 10 Feb 2026 11:27:49 +0100 Subject: [PATCH 6/8] reverted unecessary changes to patch --- ...sting-utils-dependency-from-the-buil.patch | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) 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 2578f00d3..4a986fe26 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,18 +1,18 @@ -From 6eedb5a2a3db365ce9cd4574dd8bee32a444c53f Mon Sep 17 00:00:00 2001 -From: Andrew Kenworthy -Date: Mon, 9 Feb 2026 18:21:26 +0100 -Subject: Exclude hbase testing utils dependency from the build +From f9e952767faf3032c0d4e729e51b5901fcf1a0e1 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. --- - hbase-hbck2/pom.xml | 9 +++++++-- - hbase-tools/pom.xml | 5 +++-- - 2 files changed, 10 insertions(+), 4 deletions(-) + hbase-hbck2/pom.xml | 11 +++++++++-- + hbase-tools/pom.xml | 5 +++-- + 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/hbase-hbck2/pom.xml b/hbase-hbck2/pom.xml -index 69af92e..5bfad33 100644 +index 1d57225..fd0018c 100644 --- a/hbase-hbck2/pom.xml +++ b/hbase-hbck2/pom.xml -@@ -114,12 +114,17 @@ +@@ -114,12 +114,19 @@ @@ -35,7 +35,7 @@ index 69af92e..5bfad33 100644 org.mockito mockito-core diff --git a/hbase-tools/pom.xml b/hbase-tools/pom.xml -index f9d94e8..3b9da09 100644 +index 55ef075..eeebe14 100644 --- a/hbase-tools/pom.xml +++ b/hbase-tools/pom.xml @@ -103,12 +103,13 @@ From 293db5e6a5d557d1fdb465048aeff0f99e606e40 Mon Sep 17 00:00:00 2001 From: Andrew Kenworthy Date: Tue, 10 Feb 2026 11:41:32 +0100 Subject: [PATCH 7/8] redo patch due to line numbers --- ...hbase-testing-utils-dependency-from-the-buil.patch | 6 +++--- ...igure-git-commit-id-plugin-to-use-native-git.patch | 11 ++++------- 2 files changed, 7 insertions(+), 10 deletions(-) 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 bbefc6a90..e78cab0d2 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,20 +1,17 @@ -From 9c25c222246a88fe1b15e73e4fabbe92e98db10e Mon Sep 17 00:00:00 2001 +From 923efe9f649c947de8809f78cbc899d238545d05 Mon Sep 17 00:00:00 2001 From: Andrew Kenworthy -Date: Mon, 9 Feb 2026 18:24:16 +0100 +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 fails. - -See https://github.com/git-commit-id/git-commit-id-maven-plugin/issues/215 --- hbase-hbck2/pom.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hbase-hbck2/pom.xml b/hbase-hbck2/pom.xml -index 5bfad33..f1df165 100644 +index 7bebf32..e3c246f 100644 --- a/hbase-hbck2/pom.xml +++ b/hbase-hbck2/pom.xml -@@ -212,8 +212,9 @@ +@@ -214,8 +214,9 @@ pl.project13.maven git-commit-id-plugin From d328024eec68f82a468ca9a1602c8f79e01e2169 Mon Sep 17 00:00:00 2001 From: Andrew Kenworthy Date: Wed, 11 Feb 2026 12:52:13 +0100 Subject: [PATCH 8/8] add previously deleted comment --- ...03-Configure-git-commit-id-plugin-to-use-native-git.patch | 5 +++++ 1 file changed, 5 insertions(+) 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 e78cab0d2..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 @@ -3,6 +3,11 @@ 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 +fails. + +See +https://github.com/git-commit-id/git-commit-id-maven-plugin/issues/215 --- hbase-hbck2/pom.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)