Skip to content

Commit

Permalink
HBASE-27141 Upgrade hbase-thirdparty dependency to 4.1.1 (apache#4552)
Browse files Browse the repository at this point in the history
Signed-off-by: Andrew Purtell <[email protected]>
Signed-off-by: Pankaj Kumar <[email protected]>
(cherry picked from commit 9bae50f)
  • Loading branch information
Apache9 authored and bbeaudreault committed Jun 29, 2022
1 parent 30e0324 commit 66755c0
Show file tree
Hide file tree
Showing 5 changed files with 275 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,10 @@ public class HttpServer implements FilterContainer {
private static final Logger LOG = LoggerFactory.getLogger(HttpServer.class);
private static final String EMPTY_STRING = "";

private static final int DEFAULT_MAX_HEADER_SIZE = 64 * 1024; // 64K
// Jetty's max header size is Character.MAX_VALUE - 1, See ArrayTernaryTrie for more details
// And in newer jetty version, they add a check when creating a server so we must follow this
// limitation otherwise the UTs will fail
private static final int DEFAULT_MAX_HEADER_SIZE = Character.MAX_VALUE - 1;

static final String FILTER_INITIALIZERS_PROPERTY
= "hbase.http.filter.initializers";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ public class JSONBean {
private static final String COMMA = ",";
private static final String ASTERICK = "*";
private static final Logger LOG = LoggerFactory.getLogger(JSONBean.class);
private static final Gson GSON = GsonUtil.createGson().create();
private static final Gson GSON = GsonUtil.createGsonWithDisableHtmlEscaping().create();

/**
* Use dumping out mbeans as JSON.
Expand Down
4 changes: 2 additions & 2 deletions hbase-protocol-shaded/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@
<maven.javadoc.skip>true</maven.javadoc.skip>
<!--Version of protobuf that hbase uses internally (we shade our pb)
Must match what is out in hbase-thirdparty include.
-->
<internal.protobuf.version>3.11.4</internal.protobuf.version>
-->
<internal.protobuf.version>3.21.1</internal.protobuf.version>
</properties>
<build>
<plugins>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,10 @@
public final class Constants {
private Constants(){}

public static final int DEFAULT_HTTP_MAX_HEADER_SIZE = 64 * 1024; // 64k
// Jetty's max header size is Character.MAX_VALUE - 1, See ArrayTernaryTrie for more details
// And in newer jetty version, they add a check when creating a server so we must follow this
// limitation otherwise the UTs will fail
public static final int DEFAULT_HTTP_MAX_HEADER_SIZE = Character.MAX_VALUE - 1;

public static final String SERVER_TYPE_CONF_KEY =
"hbase.regionserver.thrift.server.type";
Expand Down
274 changes: 264 additions & 10 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -512,16 +512,270 @@
<timezone>+8</timezone>
</developer>
</developers>
<build>
<extensions>
<extension>
<groupId>kr.motd.maven</groupId>
<artifactId>os-maven-plugin</artifactId>
<version>${os.maven.version}</version>
</extension>
</extensions>
<!-- Plugin versions are inherited from ASF parent pom: https://maven.apache.org/pom/asf/
For specific version use a property and define it in the parent pom.
<mailingLists>
<mailingList>
<name>User List</name>
<subscribe>[email protected]</subscribe>
<unsubscribe>[email protected]</unsubscribe>
<post>[email protected]</post>
<archive>http://mail-archives.apache.org/mod_mbox/hbase-user/</archive>
<otherArchives>
<otherArchive>https://dir.gmane.org/gmane.comp.java.hadoop.hbase.user</otherArchive>
</otherArchives>
</mailingList>
<mailingList>
<name>Developer List</name>
<subscribe>[email protected]</subscribe>
<unsubscribe>[email protected]</unsubscribe>
<post>[email protected]</post>
<archive>http://mail-archives.apache.org/mod_mbox/hbase-dev/</archive>
<otherArchives>
<otherArchive>https://dir.gmane.org/gmane.comp.java.hadoop.hbase.devel</otherArchive>
</otherArchives>
</mailingList>
<mailingList>
<name>Commits List</name>
<subscribe>[email protected]</subscribe>
<unsubscribe>[email protected]</unsubscribe>
<archive>http://mail-archives.apache.org/mod_mbox/hbase-commits/</archive>
</mailingList>
<mailingList>
<name>Issues List</name>
<subscribe>[email protected]</subscribe>
<unsubscribe>[email protected]</unsubscribe>
<archive>http://mail-archives.apache.org/mod_mbox/hbase-issues/</archive>
</mailingList>
<mailingList>
<name>Builds List</name>
<subscribe>[email protected]</subscribe>
<unsubscribe>[email protected]</unsubscribe>
<archive>http://mail-archives.apache.org/mod_mbox/hbase-builds/</archive>
</mailingList>
<mailingList>
<name>User (ZH) List</name>
<subscribe>[email protected]</subscribe>
<unsubscribe>[email protected]</unsubscribe>
<post>[email protected]</post>
<archive>https://lists.apache.org/[email protected]</archive>
</mailingList>
</mailingLists>

<modules>
<module>hbase-build-configuration</module>
<module>hbase-replication</module>
<module>hbase-mapreduce</module>
<module>hbase-resource-bundle</module>
<module>hbase-http</module>
<module>hbase-server</module>
<module>hbase-thrift</module>
<module>hbase-shell</module>
<module>hbase-protocol-shaded</module>
<module>hbase-protocol</module>
<module>hbase-client</module>
<module>hbase-hadoop-compat</module>
<module>hbase-common</module>
<module>hbase-procedure</module>
<module>hbase-endpoint</module>
<module>hbase-it</module>
<module>hbase-examples</module>
<module>hbase-assembly</module>
<module>hbase-testing-util</module>
<module>hbase-annotations</module>
<module>hbase-rest</module>
<module>hbase-checkstyle</module>
<module>hbase-external-blockcache</module>
<module>hbase-shaded</module>
<module>hbase-archetypes</module>
<module>hbase-metrics-api</module>
<module>hbase-metrics</module>
<module>hbase-zookeeper</module>
<module>hbase-hbtop</module>
<module>hbase-asyncfs</module>
<module>hbase-logging</module>
<module>hbase-compression</module>
</modules>
<scm>
<connection>scm:git:git://gitbox.apache.org/repos/asf/hbase.git</connection>
<developerConnection>scm:git:https://gitbox.apache.org/repos/asf/hbase.git</developerConnection>
<url>https://gitbox.apache.org/repos/asf?p=hbase.git</url>
</scm>
<issueManagement>
<system>JIRA</system>
<url>https://issues.apache.org/jira/browse/HBASE</url>
</issueManagement>
<distributionManagement>
<site>
<id>hbase.apache.org</id>
<name>HBase Website at hbase.apache.org</name>
<!-- On why this is the tmp dir and not hbase.apache.org, see
https://issues.apache.org/jira/browse/HBASE-7593?focusedCommentId=13555866&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13555866
-->
<url>file:///tmp</url>
</site>
</distributionManagement>
<properties>
<!-- override on command line to have generated LICENSE files include
diagnostic info for verifying notice requirements -->
<license.debug.print.included>false</license.debug.print.included>
<!-- When a particular module bundles its depenendencies, should be true -->
<license.bundles.dependencies>false</license.bundles.dependencies>
<!-- modules that include a the logo in their source tree should set true -->
<license.bundles.logo>false</license.bundles.logo>
<!-- modules that include bootstrap in their source tree should set true -->
<license.bundles.bootstrap>false</license.bundles.bootstrap>
<!-- modules that include jquery in their source tree should set true -->
<license.bundles.jquery>false</license.bundles.jquery>
<!-- modules that include vega in their source tree should set true -->
<license.bundles.vega>false</license.bundles.vega>
<tar.name>${project.build.finalName}.tar.gz</tar.name>
<maven.build.timestamp.format>yyyy-MM-dd'T'HH:mm</maven.build.timestamp.format>
<buildDate>${maven.build.timestamp}</buildDate>
<compileSource>1.8</compileSource>
<releaseTarget>8</releaseTarget>
<!-- Build dependencies -->
<maven.min.version>3.0.4</maven.min.version>
<java.min.version>${compileSource}</java.min.version>
<!-- Dependencies -->
<hadoop-two.version>2.10.0</hadoop-two.version>
<hadoop-three.version>3.1.2</hadoop-three.version>
<!-- These must be defined here for downstream build tools that don't look at profiles.
They ought to match the values found in our default hadoop profile, which is
currently "hadoop-2.0". See HBASE-15925 for more info. -->
<hadoop.version>${hadoop-two.version}</hadoop.version>
<hadoop.guava.version>11.0.2</hadoop.guava.version>
<compat.module>hbase-hadoop2-compat</compat.module>
<assembly.file>src/main/assembly/hadoop-two-compat.xml</assembly.file>
<!--This property is for hadoops netty. HBase netty
comes in via hbase-thirdparty hbase-shaded-netty-->
<netty.hadoop.version>3.6.2.Final</netty.hadoop.version>
<!-- end HBASE-15925 default hadoop compatibility values -->
<audience-annotations.version>0.5.0</audience-annotations.version>
<avro.version>1.7.7</avro.version>
<caffeine.version>2.8.1</caffeine.version>
<commons-codec.version>1.13</commons-codec.version>
<commons-io.version>2.11.0</commons-io.version>
<commons-lang3.version>3.9</commons-lang3.version>
<commons-math.version>3.6.1</commons-math.version>
<disruptor.version>3.4.2</disruptor.version>
<httpclient.version>4.5.13</httpclient.version>
<httpcore.version>4.4.13</httpcore.version>
<metrics-core.version>3.2.6</metrics-core.version>
<jackson.version>2.13.3</jackson.version>
<jackson.databind.version>2.13.3</jackson.databind.version>
<jaxb-api.version>2.3.1</jaxb-api.version>
<servlet.api.version>3.1.0</servlet.api.version>
<wx.rs.api.version>2.1.1</wx.rs.api.version>
<glassfish.jsp.version>2.3.2</glassfish.jsp.version>
<glassfish.el.version>3.0.1-b08</glassfish.el.version>
<jruby.version>9.3.4.0</jruby.version>
<junit.version>4.13.2</junit.version>
<hamcrest.version>1.3</hamcrest.version>
<opentelemetry.version>1.0.1</opentelemetry.version>
<opentelemetry-javaagent.version>1.0.1</opentelemetry-javaagent.version>
<log4j2.version>2.17.2</log4j2.version>
<mockito-core.version>2.28.2</mockito-core.version>
<!--Internally we use a different version of protobuf. See hbase-protocol-shaded-->
<external.protobuf.groupid>com.google.protobuf</external.protobuf.groupid>
<external.protobuf.version>2.5.0</external.protobuf.version>
<external.protoc.version>${external.protobuf.version}</external.protoc.version>
<protobuf.plugin.version>0.6.1</protobuf.plugin.version>
<thrift.path>thrift</thrift.path>
<thrift.version>0.14.1</thrift.version>
<zookeeper.version>3.5.7</zookeeper.version>
<jline.version>2.11</jline.version>
<slf4j.version>1.7.33</slf4j.version>
<clover.version>4.0.3</clover.version>
<jamon-runtime.version>2.4.1</jamon-runtime.version>
<jettison.version>1.3.8</jettison.version>
<!--Make sure these joni/jcodings are compatible with the versions used by jruby-->
<joni.version>2.1.42</joni.version>
<jcodings.version>1.0.56</jcodings.version>
<spy.version>2.12.2</spy.version>
<bouncycastle.version>1.67</bouncycastle.version>
<kerby.version>1.0.1</kerby.version>
<commons-crypto.version>1.0.0</commons-crypto.version>
<curator.version>4.2.0</curator.version>
<!-- Plugin Dependencies -->
<build.helper.maven.version>3.0.0</build.helper.maven.version>
<buildnumber.maven.version>1.4</buildnumber.maven.version>
<!--
When updating checkstyle.version, please make the same change in `.idea/checkstyle-idea.xml`
-->
<checkstyle.version>8.29</checkstyle.version>
<exec.maven.version>1.6.0</exec.maven.version>
<error-prone.version>2.10.0</error-prone.version>
<jamon.plugin.version>2.4.2</jamon.plugin.version>
<lifecycle.mapping.version>1.0.0</lifecycle.mapping.version>
<maven.antrun.version>1.8</maven.antrun.version>
<maven.bundle.version>3.3.0</maven.bundle.version>
<maven.checkstyle.version>3.1.0</maven.checkstyle.version>
<maven.eclipse.version>2.10</maven.eclipse.version>
<maven.gpg.version>3.0.1</maven.gpg.version>
<maven.javadoc.version>3.4.0</maven.javadoc.version>
<maven.warbucks.version>1.1.0</maven.warbucks.version>
<maven.project.info.report.version>3.1.2</maven.project.info.report.version>
<os.maven.version>1.5.0.Final</os.maven.version>
<findbugs-annotations.version>1.3.9-1</findbugs-annotations.version>
<spotbugs.version>4.2.2</spotbugs.version>
<spotbugs.maven.version>4.2.0</spotbugs.maven.version>
<surefire.version>3.0.0-M6</surefire.version>
<wagon.ssh.version>2.12</wagon.ssh.version>
<xml.maven.version>1.0.1</xml.maven.version>
<spotless.version>2.22.2</spotless.version>
<maven-site.version>3.12.0</maven-site.version>
<!-- compression -->
<aircompressor.version>0.21</aircompressor.version>
<brotli4j.version>1.7.1</brotli4j.version>
<lz4.version>1.8.0</lz4.version>
<snappy.version>1.1.8.4</snappy.version>
<xz.version>1.9</xz.version>
<zstd-jni.version>1.5.0-4</zstd-jni.version>
<hbase-thirdparty.version>4.1.1</hbase-thirdparty.version>
<!-- Intraproject jar naming properties -->
<!-- TODO this is pretty ugly, but works for the moment.
Modules are pretty heavy-weight things, so doing this work isn't too bad. -->
<server.test.jar>hbase-server-${project.version}-tests.jar</server.test.jar>
<common.test.jar>hbase-common-${project.version}-tests.jar</common.test.jar>
<procedure.test.jar>hbase-procedure-${project.version}-tests.jar</procedure.test.jar>
<it.test.jar>hbase-it-${project.version}-tests.jar</it.test.jar>
<annotations.test.jar>hbase-annotations-${project.version}-tests.jar</annotations.test.jar>
<rsgroup.test.jar>hbase-rsgroup-${project.version}-tests.jar</rsgroup.test.jar>
<mapreduce.test.jar>hbase-mapreduce-${project.version}-tests.jar</mapreduce.test.jar>
<zookeeper.test.jar>hbase-zookeeper-${project.version}-tests.jar</zookeeper.test.jar>
<asyncfs.test.jar>hbase-asyncfs-${project.version}-tests.jar</asyncfs.test.jar>
<shell-executable>bash</shell-executable>
<surefire.provider>surefire-junit47</surefire.provider>
<!-- default: run small & medium, medium with 2 threads -->
<surefire.skipFirstPart>false</surefire.skipFirstPart>
<surefire.skipSecondPart>false</surefire.skipSecondPart>
<!-- Fork count varies w/ CPU count. Setting is conservative mostly determined
by what apache jenkins nightly builds will tolerate (See HBASE-24072). Up this
value is you want to burn through tests faster (could make for more failures
if more contention around resources). There is a matching MAVEN_ARG
in our yetus personality where we set the maven -T command to 0.25C too.
For example, to run at a rate that is more furious than our 0.25C, do
something like this:
f="0.5C" ; mvn -T$f -Dsurefire.firstPartForkCount=$f -Dsurefire.secondPartForkCount=$f test -PrunAllTests
-->
<surefire.firstPartForkCount>0.25C</surefire.firstPartForkCount>
<surefire.secondPartForkCount>0.25C</surefire.secondPartForkCount>
<surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.SmallTests</surefire.firstPartGroups>
<surefire.secondPartGroups>org.apache.hadoop.hbase.testclassification.MediumTests</surefire.secondPartGroups>
<surefire.testFailureIgnore>false</surefire.testFailureIgnore>
<test.output.tofile>true</test.output.tofile>
<surefire.timeout>900</surefire.timeout>
<test.exclude.pattern/>
<!--
Use -Dsurefire.Xmx=xxg to run tests with different JVM Xmx value.
This value is managed separately for jdk11. See below.
-->
<surefire.Xmx>2200m</surefire.Xmx>
<surefire.cygwinXmx>2200m</surefire.cygwinXmx>
<!--Mark our test runs with '-Dhbase.build.id' so we can identify a surefire test as ours in a process listing
And for netty eventloops that have no explicit configuration, netty sets
nioeventloopgroup thread count to CPU count * 2. Thats too much for mini
clusters/tests.
-->
<pluginManagement>
<plugins>
Expand Down

0 comments on commit 66755c0

Please sign in to comment.