From 9287d1ac7f4fa9aa20a4762ec90b6247b9f95c79 Mon Sep 17 00:00:00 2001 From: dervoeti Date: Fri, 7 Feb 2025 11:35:00 +0100 Subject: [PATCH] chore: bump hbase, phoenix and hbase-operator-tools --- CHANGELOG.md | 2 + .../patches/2.6.1/01-HBASE-28242.patch | 384 ++++++++++++++++++ .../patches/2.6.1/02-patch-updates.patch | 113 ++++++ .../2.6.1/03-include-dataformat-xml.patch | 58 +++ .../2.6.1/04-patch-cyclonedx-plugin.patch | 17 + .../1.3.0-fd5a5fb/01-cyclonedx-plugin.patch | 28 ++ .../phoenix/5.2.1/01-cyclonedx-plugin.patch | 28 ++ ...CVE-2023-34455-update-snappy-version.patch | 97 +++++ hbase/versions.py | 12 +- 9 files changed, 733 insertions(+), 6 deletions(-) create mode 100644 hbase/stackable/patches/2.6.1/01-HBASE-28242.patch create mode 100644 hbase/stackable/patches/2.6.1/02-patch-updates.patch create mode 100644 hbase/stackable/patches/2.6.1/03-include-dataformat-xml.patch create mode 100644 hbase/stackable/patches/2.6.1/04-patch-cyclonedx-plugin.patch create mode 100644 hbase/stackable/patches/hbase-operator-tools/1.3.0-fd5a5fb/01-cyclonedx-plugin.patch create mode 100644 hbase/stackable/patches/phoenix/5.2.1/01-cyclonedx-plugin.patch create mode 100644 hbase/stackable/patches/phoenix/5.2.1/02-CVE-2023-34455-update-snappy-version.patch diff --git a/CHANGELOG.md b/CHANGELOG.md index a26f533db..29582736c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,7 @@ All notable changes to this project will be documented in this file. - java: Add JDK/JRE 23 ([#992]). - trino: Add 469 ([#993]). - trino-cli: Add version 469 ([#993]). +- hbase: Support for 2.6.1 ([#997]). ### Changed @@ -56,6 +57,7 @@ All notable changes to this project will be documented in this file. [#992]: https://github.com/stackabletech/docker-images/pull/992 [#993]: https://github.com/stackabletech/docker-images/pull/993 [#995]: https://github.com/stackabletech/docker-images/pull/995 +[#997]: https://github.com/stackabletech/docker-images/pull/997 ## [24.11.1] - 2025-01-14 diff --git a/hbase/stackable/patches/2.6.1/01-HBASE-28242.patch b/hbase/stackable/patches/2.6.1/01-HBASE-28242.patch new file mode 100644 index 000000000..686bbac13 --- /dev/null +++ b/hbase/stackable/patches/2.6.1/01-HBASE-28242.patch @@ -0,0 +1,384 @@ +HBASE-28242 - Updates async-profiler support + +From: Lars Francke + + +--- + .../apache/hadoop/hbase/http/ProfileServlet.java | 205 ++++++++++++-------- + 1 file changed, 121 insertions(+), 84 deletions(-) + +diff --git a/hbase-http/src/main/java/org/apache/hadoop/hbase/http/ProfileServlet.java b/hbase-http/src/main/java/org/apache/hadoop/hbase/http/ProfileServlet.java +index 83087dbed3..6139114717 100644 +--- a/hbase-http/src/main/java/org/apache/hadoop/hbase/http/ProfileServlet.java ++++ b/hbase-http/src/main/java/org/apache/hadoop/hbase/http/ProfileServlet.java +@@ -25,9 +25,11 @@ import java.util.concurrent.TimeUnit; + import java.util.concurrent.atomic.AtomicInteger; + import java.util.concurrent.locks.Lock; + import java.util.concurrent.locks.ReentrantLock; ++ + import javax.servlet.http.HttpServlet; + import javax.servlet.http.HttpServletRequest; + import javax.servlet.http.HttpServletResponse; ++ + import org.apache.hadoop.hbase.util.ProcessUtils; + import org.apache.yetus.audience.InterfaceAudience; + import org.slf4j.Logger; +@@ -37,23 +39,60 @@ import org.apache.hbase.thirdparty.com.google.common.base.Joiner; + + /** + * Servlet that runs async-profiler as web-endpoint. Following options from async-profiler can be +- * specified as query paramater. // -e event profiling event: cpu|alloc|lock|cache-misses etc. // -d +- * duration run profiling for 'duration' seconds (integer) // -i interval sampling interval in +- * nanoseconds (long) // -j jstackdepth maximum Java stack depth (integer) // -b bufsize frame +- * buffer size (long) // -t profile different threads separately // -s simple class names instead of +- * FQN // -o fmt[,fmt...] output format: summary|traces|flat|collapsed|svg|tree|jfr|html // --width +- * px SVG width pixels (integer) // --height px SVG frame height pixels (integer) // --minwidth px +- * skip frames smaller than px (double) // --reverse generate stack-reversed FlameGraph / Call tree +- * Example: - To collect 30 second CPU profile of current process (returns FlameGraph svg) curl +- * "http://localhost:10002/prof" - To collect 1 minute CPU profile of current process and output in +- * tree format (html) curl "http://localhost:10002/prof?output=tree&duration=60" - To collect 30 +- * second heap allocation profile of current process (returns FlameGraph svg) curl +- * "http://localhost:10002/prof?event=alloc" - To collect lock contention profile of current process +- * (returns FlameGraph svg) curl "http://localhost:10002/prof?event=lock" Following event types are +- * supported (default is 'cpu') (NOTE: not all OS'es support all events) // Perf events: // cpu // +- * page-faults // context-switches // cycles // instructions // cache-references // cache-misses // +- * branches // branch-misses // bus-cycles // L1-dcache-load-misses // LLC-load-misses // +- * dTLB-load-misses // mem:breakpoint // trace:tracepoint // Java events: // alloc // lock ++ * specified as query parameter. ++ * ++ * Example: ++ * ++ * Following event types are supported (default is 'cpu') (NOTE: not all OS'es support all ++ * events).
++ * Basic events: ++ * ++ * Perf events: ++ * + */ + @InterfaceAudience.Private + public class ProfileServlet extends HttpServlet { +@@ -77,19 +116,20 @@ public class ProfileServlet extends HttpServlet { + WALL("wall"), + ALLOC("alloc"), + LOCK("lock"), +- PAGE_FAULTS("page-faults"), ++ ITIMER("itimer"), ++ BRANCH_INSTRUCTIONS("branch-instructions"), ++ BRANCH_MISSES("branch-misses"), ++ BUS_CYCLES("bus-cycles"), ++ CACHE_MISSES("cache-misses"), ++ CACHE_REFERENCES("cache-references"), + CONTEXT_SWITCHES("context-switches"), + CYCLES("cycles"), ++ DTLB_LOAD_MISSES("dTLB-load-misses"), + INSTRUCTIONS("instructions"), +- CACHE_REFERENCES("cache-references"), +- CACHE_MISSES("cache-misses"), +- BRANCHES("branches"), +- BRANCH_MISSES("branch-misses"), +- BUS_CYCLES("bus-cycles"), + L1_DCACHE_LOAD_MISSES("L1-dcache-load-misses"), + LLC_LOAD_MISSES("LLC-load-misses"), +- DTLB_LOAD_MISSES("dTLB-load-misses"), + MEM_BREAKPOINT("mem:breakpoint"), ++ PAGE_FAULTS("page-faults"), + TRACE_TRACEPOINT("trace:tracepoint"),; + + private final String internalName; +@@ -98,11 +138,11 @@ public class ProfileServlet extends HttpServlet { + this.internalName = internalName; + } + +- public String getInternalName() { ++ String getInternalName() { + return internalName; + } + +- public static Event fromInternalName(final String name) { ++ static Event fromInternalName(final String name) { + for (Event event : values()) { + if (event.getInternalName().equalsIgnoreCase(name)) { + return event; +@@ -113,30 +153,26 @@ public class ProfileServlet extends HttpServlet { + } + } + +- enum Output { +- SUMMARY, +- TRACES, +- FLAT, ++ private enum Output { + COLLAPSED, +- // No SVG in 2.x asyncprofiler. +- SVG, +- TREE, ++ FLAMEGRAPH, ++ FLAT, + JFR, +- // In 2.x asyncprofiler, this is how you get flamegraphs. +- HTML ++ TRACES, ++ TREE + } + + @edu.umd.cs.findbugs.annotations.SuppressWarnings(value = "SE_TRANSIENT_FIELD_NOT_RESTORED", + justification = "This class is never serialized nor restored.") +- private transient Lock profilerLock = new ReentrantLock(); ++ private final transient Lock profilerLock = new ReentrantLock(); + private transient volatile Process process; +- private String asyncProfilerHome; ++ private final String asyncProfilerHome; + private Integer pid; + + public ProfileServlet() { + this.asyncProfilerHome = getAsyncProfilerHome(); + this.pid = ProcessUtils.getPid(); +- LOG.info("Servlet process PID: " + pid + " asyncProfilerHome: " + asyncProfilerHome); ++ LOG.info("Servlet process PID: {} asyncProfilerHome: {}", pid, asyncProfilerHome); + } + + @Override +@@ -155,9 +191,9 @@ public class ProfileServlet extends HttpServlet { + setResponseHeader(resp); + resp.getWriter() + .write("ASYNC_PROFILER_HOME env is not set.\n\n" +- + "Please ensure the prerequsites for the Profiler Servlet have been installed and the\n" ++ + "Please ensure the prerequisites for the Profiler Servlet have been installed and the\n" + + "environment is properly configured. For more information please see\n" +- + "http://hbase.apache.org/book.html#profiler\n"); ++ + "https://hbase.apache.org/book.html#profiler\n"); + return; + } + +@@ -173,18 +209,18 @@ public class ProfileServlet extends HttpServlet { + return; + } + +- final int duration = getInteger(req, "duration", DEFAULT_DURATION_SECONDS); +- final Output output = getOutput(req); +- final Event event = getEvent(req); +- final Long interval = getLong(req, "interval"); +- final Integer jstackDepth = getInteger(req, "jstackdepth", null); +- final Long bufsize = getLong(req, "bufsize"); +- final boolean thread = req.getParameterMap().containsKey("thread"); +- final boolean simple = req.getParameterMap().containsKey("simple"); +- final Integer width = getInteger(req, "width", null); +- final Integer height = getInteger(req, "height", null); +- final Double minwidth = getMinWidth(req); +- final boolean reverse = req.getParameterMap().containsKey("reverse"); ++ Event event = getEvent(req); ++ int duration = getInteger(req, "duration", DEFAULT_DURATION_SECONDS); ++ Long interval = getLong(req, "interval"); ++ Integer jstackDepth = getInteger(req, "jstackdepth", null); ++ boolean thread = req.getParameterMap().containsKey("thread"); ++ boolean simple = req.getParameterMap().containsKey("simple"); ++ boolean signature = req.getParameterMap().containsKey("signature"); ++ boolean annotate = req.getParameterMap().containsKey("annotate"); ++ boolean prependLib = req.getParameterMap().containsKey("prependlib"); ++ Output output = getOutput(req); ++ Double minwidth = getMinWidth(req); ++ boolean reverse = req.getParameterMap().containsKey("reverse"); + + if (process == null || !process.isAlive()) { + try { +@@ -199,11 +235,7 @@ public class ProfileServlet extends HttpServlet { + cmd.add("-e"); + cmd.add(event.getInternalName()); + cmd.add("-d"); +- cmd.add("" + duration); +- cmd.add("-o"); +- cmd.add(output.name().toLowerCase()); +- cmd.add("-f"); +- cmd.add(outputFile.getAbsolutePath()); ++ cmd.add(String.valueOf(duration)); + if (interval != null) { + cmd.add("-i"); + cmd.add(interval.toString()); +@@ -212,24 +244,25 @@ public class ProfileServlet extends HttpServlet { + cmd.add("-j"); + cmd.add(jstackDepth.toString()); + } +- if (bufsize != null) { +- cmd.add("-b"); +- cmd.add(bufsize.toString()); +- } + if (thread) { + cmd.add("-t"); + } + if (simple) { + cmd.add("-s"); + } +- if (width != null) { +- cmd.add("--width"); +- cmd.add(width.toString()); ++ if (signature) { ++ cmd.add("-g"); + } +- if (height != null) { +- cmd.add("--height"); +- cmd.add(height.toString()); ++ if (annotate) { ++ cmd.add("-a"); + } ++ if (prependLib) { ++ cmd.add("-l"); ++ } ++ cmd.add("-o"); ++ cmd.add(output.name().toLowerCase()); ++ cmd.add("-f"); ++ cmd.add(outputFile.getAbsolutePath()); + if (minwidth != null) { + cmd.add("--minwidth"); + cmd.add(minwidth.toString()); +@@ -237,6 +270,7 @@ public class ProfileServlet extends HttpServlet { + if (reverse) { + cmd.add("--reverse"); + } ++ + cmd.add(pid.toString()); + process = ProcessUtils.runCmdAsync(cmd); + +@@ -247,7 +281,10 @@ public class ProfileServlet extends HttpServlet { + resp.getWriter() + .write("Started [" + event.getInternalName() + + "] profiling. This page will automatically redirect to " + relativeUrl + " after " +- + duration + " seconds.\n\nCommand:\n" + Joiner.on(" ").join(cmd)); ++ + duration + " seconds. " ++ + "If empty diagram and Linux 4.6+, see 'Basic Usage' section on the Async " ++ + "Profiler Home Page, https://github.com/jvm-profiling-tools/async-profiler." ++ + "\n\nCommand:\n" + Joiner.on(" ").join(cmd)); + + // to avoid auto-refresh by ProfileOutputServlet, refreshDelay can be specified + // via url param +@@ -265,8 +302,9 @@ public class ProfileServlet extends HttpServlet { + resp.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + resp.getWriter() + .write("Unable to acquire lock. Another instance of profiler might be running."); +- LOG.warn("Unable to acquire lock in " + lockTimeoutSecs +- + " seconds. Another instance of profiler might be running."); ++ LOG.warn( ++ "Unable to acquire lock in {} seconds. Another instance of profiler might be running.", ++ lockTimeoutSecs); + } + } catch (InterruptedException e) { + LOG.warn("Interrupted while acquiring profile lock.", e); +@@ -279,9 +317,9 @@ public class ProfileServlet extends HttpServlet { + } + } + +- private Integer getInteger(final HttpServletRequest req, final String param, ++ private static Integer getInteger(final HttpServletRequest req, final String param, + final Integer defaultValue) { +- final String value = req.getParameter(param); ++ String value = req.getParameter(param); + if (value != null) { + try { + return Integer.valueOf(value); +@@ -292,8 +330,8 @@ public class ProfileServlet extends HttpServlet { + return defaultValue; + } + +- private Long getLong(final HttpServletRequest req, final String param) { +- final String value = req.getParameter(param); ++ private static Long getLong(final HttpServletRequest req, final String param) { ++ String value = req.getParameter(param); + if (value != null) { + try { + return Long.valueOf(value); +@@ -304,8 +342,8 @@ public class ProfileServlet extends HttpServlet { + return null; + } + +- private Double getMinWidth(final HttpServletRequest req) { +- final String value = req.getParameter("minwidth"); ++ private static Double getMinWidth(final HttpServletRequest req) { ++ String value = req.getParameter("minwidth"); + if (value != null) { + try { + return Double.valueOf(value); +@@ -316,8 +354,8 @@ public class ProfileServlet extends HttpServlet { + return null; + } + +- private Event getEvent(final HttpServletRequest req) { +- final String eventArg = req.getParameter("event"); ++ private static Event getEvent(final HttpServletRequest req) { ++ String eventArg = req.getParameter("event"); + if (eventArg != null) { + Event event = Event.fromInternalName(eventArg); + return event == null ? Event.CPU : event; +@@ -325,16 +363,16 @@ public class ProfileServlet extends HttpServlet { + return Event.CPU; + } + +- private Output getOutput(final HttpServletRequest req) { +- final String outputArg = req.getParameter("output"); ++ private static Output getOutput(final HttpServletRequest req) { ++ String outputArg = req.getParameter("output"); + if (req.getParameter("output") != null) { + try { + return Output.valueOf(outputArg.trim().toUpperCase()); + } catch (IllegalArgumentException e) { +- return Output.HTML; ++ return Output.FLAMEGRAPH; + } + } +- return Output.HTML; ++ return Output.FLAMEGRAPH; + } + + static void setResponseHeader(final HttpServletResponse response) { +@@ -366,8 +404,7 @@ public class ProfileServlet extends HttpServlet { + .write("The profiler servlet was disabled at startup.\n\n" + + "Please ensure the prerequisites for the Profiler Servlet have been installed and the\n" + + "environment is properly configured. For more information please see\n" +- + "http://hbase.apache.org/book.html#profiler\n"); +- return; ++ + "https://hbase.apache.org/book.html#profiler\n"); + } + + } diff --git a/hbase/stackable/patches/2.6.1/02-patch-updates.patch b/hbase/stackable/patches/2.6.1/02-patch-updates.patch new file mode 100644 index 000000000..380b10741 --- /dev/null +++ b/hbase/stackable/patches/2.6.1/02-patch-updates.patch @@ -0,0 +1,113 @@ +diff --git a/pom.xml b/pom.xml +index 01123cb..3734fb1 100644 +--- a/pom.xml ++++ b/pom.xml +@@ -567,7 +567,7 @@ + modules and cause trouble if we only rely on transitive dependencies. + --> + 3.10.6.Final +- 4.1.112.Final ++ 4.1.117.Final + + 0.13.0 + + 0.13.0 + 1.11.4 +- 2.8.1 ++ 2.8.8 + 1.15 + 2.11.0 + 3.9 + 3.6.1 + 1.5.0 + 3.4.4 +- 4.5.13 +- 4.4.13 ++ 4.5.14 ++ 4.4.16 + 3.2.6 + +- 2.17.2 +- 2.17.2 ++ 2.17.3 ++ 2.17.3 + 2.3.1 + 3.1.0 + 2.1.1 +- 2.3.2 +- 3.0.1-b08 +- 9.3.13.0 ++ 2.3.4 ++ 3.0.1-b12 ++ 9.3.15.0 + 4.13.2 + 1.3 + 1.15.0 +@@ -615,19 +615,19 @@ + 4.28.2 + 0.6.1 + thrift +- 0.14.1 ++ 0.14.2 + 3.8.4 + 2.11 +- 1.7.33 ++ 1.7.36 + 4.0.3 + 2.4.1 + 1.5.4 + +- 2.2.1 +- 1.0.58 +- 2.12.2 +- 1.78 +- 1.5.1 ++ 2.2.3 ++ 1.0.61 ++ 2.12.3 ++ 1.78.1 ++ 1.5.3 + 1.0.1 + 1.1.0 + 4.2.0 +@@ -644,27 +644,27 @@ + 1.0.0 + 1.8 + 3.3.0 +- 3.1.0 ++ 3.1.2 + 2.10 + 3.0.1 +- 3.4.0 +- 1.1.0 ++ 3.4.1 ++ 1.1.2 + 3.1.2 + 1.5.0.Final + 1.3.9-1 + 4.7.3 +- 4.7.2.1 +- 3.1.0 ++ 4.7.3.6 ++ 3.1.2 + 2.12 + 1.0.1 + 2.27.2 +- 3.12.0 ++ 3.12.1 + + 0.27 + 1.11.0 + 1.8.0 +- 1.1.10.4 +- 1.5.5-2 ++ 1.1.10.7 ++ 1.5.6-9 + ++ com.fasterxml.jackson.dataformat ++ jackson-dataformat-xml ++ + + org.apache.logging.log4j + log4j-slf4j-impl +diff --git a/pom.xml b/pom.xml +index b420025c6c..819e021d86 100644 +--- a/pom.xml ++++ b/pom.xml +@@ -1149,6 +1149,11 @@ + log4j-core + ${log4j2.version} + ++ ++ org.apache.logging.log4j ++ log4j-core ++ ${log4j2.version} ++ + + org.apache.logging.log4j + log4j-slf4j-impl +@@ -1159,6 +1164,13 @@ + log4j-1.2-api + ${log4j2.version} + ++ ++ ++ com.fasterxml.jackson.dataformat ++ jackson-dataformat-xml ++ ${jackson.databind.version} ++ ++ + + + org.apache.avro diff --git a/hbase/stackable/patches/2.6.1/04-patch-cyclonedx-plugin.patch b/hbase/stackable/patches/2.6.1/04-patch-cyclonedx-plugin.patch new file mode 100644 index 000000000..9e417ff3a --- /dev/null +++ b/hbase/stackable/patches/2.6.1/04-patch-cyclonedx-plugin.patch @@ -0,0 +1,17 @@ +diff --git a/pom.xml b/pom.xml +index 918cdaa..2a83794 100644 +--- a/pom.xml ++++ b/pom.xml +@@ -3218,7 +3218,11 @@ + + org.cyclonedx + cyclonedx-maven-plugin +- 2.7.10 ++ 2.9.1 ++ ++ application ++ 1.5 ++ + + + diff --git a/hbase/stackable/patches/hbase-operator-tools/1.3.0-fd5a5fb/01-cyclonedx-plugin.patch b/hbase/stackable/patches/hbase-operator-tools/1.3.0-fd5a5fb/01-cyclonedx-plugin.patch new file mode 100644 index 000000000..1eb4562b3 --- /dev/null +++ b/hbase/stackable/patches/hbase-operator-tools/1.3.0-fd5a5fb/01-cyclonedx-plugin.patch @@ -0,0 +1,28 @@ +diff --git a/pom.xml b/pom.xml +index caa032a..0025687 100644 +--- a/pom.xml ++++ b/pom.xml +@@ -549,6 +549,23 @@ + + + ++ ++ org.cyclonedx ++ cyclonedx-maven-plugin ++ 2.9.1 ++ ++ application ++ 1.5 ++ ++ ++ ++ ++ makeBom ++ ++ package ++ ++ ++ + + + diff --git a/hbase/stackable/patches/phoenix/5.2.1/01-cyclonedx-plugin.patch b/hbase/stackable/patches/phoenix/5.2.1/01-cyclonedx-plugin.patch new file mode 100644 index 000000000..99de035c0 --- /dev/null +++ b/hbase/stackable/patches/phoenix/5.2.1/01-cyclonedx-plugin.patch @@ -0,0 +1,28 @@ +diff --git a/pom.xml b/pom.xml +index bce2398..4abcb5a 100644 +--- a/pom.xml ++++ b/pom.xml +@@ -680,6 +680,23 @@ + true + true + ++ ++ org.cyclonedx ++ cyclonedx-maven-plugin ++ 2.9.1 ++ ++ application ++ 1.5 ++ ++ ++ ++ ++ makeBom ++ ++ package ++ ++ ++ + + + diff --git a/hbase/stackable/patches/phoenix/5.2.1/02-CVE-2023-34455-update-snappy-version.patch b/hbase/stackable/patches/phoenix/5.2.1/02-CVE-2023-34455-update-snappy-version.patch new file mode 100644 index 000000000..6b89037c8 --- /dev/null +++ b/hbase/stackable/patches/phoenix/5.2.1/02-CVE-2023-34455-update-snappy-version.patch @@ -0,0 +1,97 @@ +Fix CVE-2023-34455 + +See https://github.com/stackabletech/vulnerabilities/issues/558 + +diff --git a/phoenix-core-client/pom.xml b/phoenix-core-client/pom.xml +index f711b0f6f..3cfbffef9 100644 +--- a/phoenix-core-client/pom.xml ++++ b/phoenix-core-client/pom.xml +@@ -230,6 +230,12 @@ + org.apache.hadoop + hadoop-auth + ++ ++ ++ org.xerial.snappy ++ snappy-java ++ 1.1.10.4 ++ + + + +diff --git a/phoenix-core-server/pom.xml b/phoenix-core-server/pom.xml +index d5032ece2..e47fb0837 100644 +--- a/phoenix-core-server/pom.xml ++++ b/phoenix-core-server/pom.xml +@@ -59,6 +59,12 @@ + org.apache.hadoop + hadoop-mapreduce-client-core + ++ ++ ++ org.xerial.snappy ++ snappy-java ++ 1.1.10.4 ++ + + + +@@ -192,4 +198,4 @@ + + + +- +\ No newline at end of file ++ +diff --git a/phoenix-pherf/pom.xml b/phoenix-pherf/pom.xml +index c03fff9a1..cdcce2f98 100644 +--- a/phoenix-pherf/pom.xml ++++ b/phoenix-pherf/pom.xml +@@ -159,6 +159,12 @@ + org.apache.hbase + hbase-server + ++ ++ ++ org.xerial.snappy ++ snappy-java ++ 1.1.10.4 ++ + + + +diff --git a/phoenix-tracing-webapp/pom.xml b/phoenix-tracing-webapp/pom.xml +index d2d1549ef..c8054159e 100755 +--- a/phoenix-tracing-webapp/pom.xml ++++ b/phoenix-tracing-webapp/pom.xml +@@ -89,6 +89,12 @@ + org.apache.hbase + hbase-common + ++ ++ ++ org.xerial.snappy ++ snappy-java ++ 1.1.10.4 ++ + + + +diff --git a/pom.xml b/pom.xml +index 4abcb5a28..21dcf71ad 100644 +--- a/pom.xml ++++ b/pom.xml +@@ -850,6 +850,13 @@ + + + ++ ++ ++ org.xerial.snappy ++ snappy-java ++ 1.1.10.4 ++ ++ + + org.apache.hadoop + hadoop-common diff --git a/hbase/versions.py b/hbase/versions.py index 002c8255c..d86649a36 100644 --- a/hbase/versions.py +++ b/hbase/versions.py @@ -12,21 +12,21 @@ "hbase_profile": "2.4", "hadoop": "3.3.6", "jmx_exporter": "1.0.1-stackable", # update the stackable/jmx/config folder too - "opa_authorizer": "", # only for HBase 2.6.0 + "opa_authorizer": "", # only for HBase 2.6.1 "delete_caches": "true", }, { - "product": "2.6.0", - "hbase_thirdparty": "4.1.7", - "hbase_operator_tools": "1.3.0-7c738fc", + "product": "2.6.1", + "hbase_thirdparty": "4.1.9", + "hbase_operator_tools": "1.3.0-fd5a5fb", "java-base": "11", "java-devel": "11", "async_profiler": "2.9", - "phoenix": "5.3.0-4afe457", + "phoenix": "5.2.1", "hbase_profile": "2.6", "hadoop": "3.3.6", "jmx_exporter": "", # 2.6 exports jmx and prometheus metrics by default - "opa_authorizer": "0.1.0", # only for HBase 2.6.0 + "opa_authorizer": "0.1.0", # only for HBase 2.6.1 "delete_caches": "true", }, ]