This is an automated email from the ASF dual-hosted git repository.
iwasakims pushed a commit to branch branch-3.0
in repository https://gitbox.apache.org/repos/asf/bigtop.git
The following commit(s) were added to refs/heads/branch-3.0 by this push:
new 15bb6d1 BIGTOP-3615. Upgrade log4j2 of Hive 3.1.2 to 2.16.0. (#841)
15bb6d1 is described below
commit 15bb6d1abac20383635e846e34d21a09b6a13094
Author: Masatake Iwasaki <[email protected]>
AuthorDate: Thu Dec 16 10:29:38 2021 +0900
BIGTOP-3615. Upgrade log4j2 of Hive 3.1.2 to 2.16.0. (#841)
(cherry picked from commit 12885ddf60c2b34b4b6e21ad68fec439f3f72ace)
---
.../common/hive/patch7-HIVE-22278-branch-3.1.diff | 119 +++++++++++++++++++++
.../common/hive/patch8-HIVE-25795-branch-3.1.diff | 38 +++++++
.../src/common/hive/patch9-log4j2-2.16.0.diff | 26 +++++
bigtop.bom | 2 +-
4 files changed, 184 insertions(+), 1 deletion(-)
diff --git a/bigtop-packages/src/common/hive/patch7-HIVE-22278-branch-3.1.diff
b/bigtop-packages/src/common/hive/patch7-HIVE-22278-branch-3.1.diff
new file mode 100644
index 0000000..7ba41d8
--- /dev/null
+++ b/bigtop-packages/src/common/hive/patch7-HIVE-22278-branch-3.1.diff
@@ -0,0 +1,119 @@
+commit 8db99c4a896b2cb5261d6e31e961835778129e9d
+Author: David Lavati <[email protected]>
+Date: Tue Oct 8 12:54:24 2019 +0000
+
+ HIVE-22278: Upgrade log4j to 2.12.1 (David Lavati via Zoltan Haindrich)
+
+ Signed-off-by: Zoltan Haindrich <[email protected]>
+ (cherry picked from commit caf7ac0099645ac8500d824556941447e66e25e3)
+
+ Conflicts:
+ pom.xml
+ standalone-metastore/metastore-common/pom.xml
+ standalone-metastore/pom.xml
+
+diff --git
a/itests/hive-unit/src/test/java/org/apache/hive/service/cli/operation/TestOperationLoggingLayout.java
b/itests/hive-unit/src/test/java/org/apache/hive/service/cli/operation/TestOperationLoggingLayout.java
+index d90d590e29..6972ddef9b 100644
+---
a/itests/hive-unit/src/test/java/org/apache/hive/service/cli/operation/TestOperationLoggingLayout.java
++++
b/itests/hive-unit/src/test/java/org/apache/hive/service/cli/operation/TestOperationLoggingLayout.java
+@@ -188,7 +188,7 @@ private void checkAppenderState(String msg, String
routingAppenderName, String q
+ Map<String, Appender> appendersMap = loggerConfig.getAppenders();
+ RoutingAppender routingAppender = (RoutingAppender)
appendersMap.get(routingAppenderName);
+ Assert.assertNotNull(msg + "could not find routingAppender " +
routingAppenderName, routingAppender);
+- Field defaultsField = RoutingAppender.class.getDeclaredField("appenders");
++ Field defaultsField =
RoutingAppender.class.getDeclaredField("createdAppenders");
+ defaultsField.setAccessible(true);
+ ConcurrentHashMap appenders = (ConcurrentHashMap)
defaultsField.get(routingAppender);
+ AppenderControl appenderControl = (AppenderControl)
appenders.get(queryId);
+@@ -219,7 +219,7 @@ private Appender getAppender(String routingAppenderName,
String queryId)
+ Map<String, Appender> appendersMap = loggerConfig.getAppenders();
+ RoutingAppender routingAppender = (RoutingAppender)
appendersMap.get(routingAppenderName);
+ Assert.assertNotNull("could not find routingAppender " +
routingAppenderName, routingAppender);
+- Field defaultsField = RoutingAppender.class.getDeclaredField("appenders");
++ Field defaultsField =
RoutingAppender.class.getDeclaredField("createdAppenders");
+ defaultsField.setAccessible(true);
+ ConcurrentHashMap appenders = (ConcurrentHashMap)
defaultsField.get(routingAppender);
+ AppenderControl appenderControl = (AppenderControl)
appenders.get(queryId);
+diff --git a/pom.xml b/pom.xml
+index 17dd2cf886..123c642c13 100644
+--- a/pom.xml
++++ b/pom.xml
+@@ -181,7 +181,7 @@
+ <kryo.version>3.0.3</kryo.version>
+ <libfb303.version>0.9.3</libfb303.version>
+ <libthrift.version>0.9.3</libthrift.version>
+- <log4j2.version>2.10.0</log4j2.version>
++ <log4j2.version>2.12.1</log4j2.version>
+ <opencsv.version>2.3</opencsv.version>
+ <orc.version>1.5.6</orc.version>
+ <mockito-all.version>1.10.19</mockito-all.version>
+diff --git a/ql/pom.xml b/ql/pom.xml
+index 1b49ec8b5a..2a99fd52c3 100644
+--- a/ql/pom.xml
++++ b/ql/pom.xml
+@@ -133,6 +133,11 @@
+ <artifactId>log4j-1.2-api</artifactId>
+ <version>${log4j2.version}</version>
+ </dependency>
++ <dependency>
++ <groupId>org.apache.logging.log4j</groupId>
++ <artifactId>log4j-core</artifactId>
++ <version>${log4j2.version}</version>
++ </dependency>
+ <dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-slf4j-impl</artifactId>
+diff --git
a/ql/src/java/org/apache/hadoop/hive/ql/log/SlidingFilenameRolloverStrategy.java
b/ql/src/java/org/apache/hadoop/hive/ql/log/SlidingFilenameRolloverStrategy.java
+index 664734c7bc..67bbd8eb07 100644
+---
a/ql/src/java/org/apache/hadoop/hive/ql/log/SlidingFilenameRolloverStrategy.java
++++
b/ql/src/java/org/apache/hadoop/hive/ql/log/SlidingFilenameRolloverStrategy.java
+@@ -73,6 +73,10 @@ public String getCurrentFileName(RollingFileManager
rollingFileManager) {
+ return getLogFileName(pattern);
+ }
+
++ @Override public void clearCurrentFileName() {
++ // no rename is needed
++ }
++
+ /**
+ * @return Mangled file name formed by appending the current timestamp
+ */
+diff --git a/standalone-metastore/pom.xml b/standalone-metastore/pom.xml
+index bd2e51edeb..e74a3b6ebe 100644
+--- a/standalone-metastore/pom.xml
++++ b/standalone-metastore/pom.xml
+@@ -78,8 +78,8 @@
+ <junit.version>4.11</junit.version>
+ <libfb303.version>0.9.3</libfb303.version>
+ <libthrift.version>0.9.3</libthrift.version>
+- <log4j2.version>2.8.2</log4j2.version>
+ <mockito-all.version>1.10.19</mockito-all.version>
++ <log4j2.version>2.12.1</log4j2.version>
+ <orc.version>1.5.1</orc.version>
+ <protobuf.version>2.5.0</protobuf.version>
+ <sqlline.version>1.3.0</sqlline.version>
+@@ -254,6 +254,11 @@
+ <artifactId>hive-storage-api</artifactId>
+ <version>${storage-api.version}</version>
+ </dependency>
++ <dependency>
++ <groupId>org.apache.logging.log4j</groupId>
++ <artifactId>log4j-core</artifactId>
++ <version>${log4j2.version}</version>
++ </dependency>
+ <dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-slf4j-impl</artifactId>
+diff --git a/testutils/ptest2/pom.xml b/testutils/ptest2/pom.xml
+index 10dda97248..f4ec5a57c6 100644
+--- a/testutils/ptest2/pom.xml
++++ b/testutils/ptest2/pom.xml
+@@ -26,7 +26,7 @@ limitations under the License.
+ <name>hive-ptest</name>
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+- <log4j2.version>2.10.0</log4j2.version>
++ <log4j2.version>2.12.1</log4j2.version>
+ <spring.framework.version>3.2.16.RELEASE</spring.framework.version>
+ <jclouds.version>2.0.0</jclouds.version>
+ <checkstyle.conf.dir>${basedir}/../../checkstyle/</checkstyle.conf.dir>
diff --git a/bigtop-packages/src/common/hive/patch8-HIVE-25795-branch-3.1.diff
b/bigtop-packages/src/common/hive/patch8-HIVE-25795-branch-3.1.diff
new file mode 100644
index 0000000..b797d47
--- /dev/null
+++ b/bigtop-packages/src/common/hive/patch8-HIVE-25795-branch-3.1.diff
@@ -0,0 +1,38 @@
+diff --git a/bin/hive-config.sh b/bin/hive-config.sh
+index d52b84eb5f..8381a25a05 100644
+--- a/bin/hive-config.sh
++++ b/bin/hive-config.sh
+@@ -68,3 +68,7 @@ export HIVE_AUX_JARS_PATH=$HIVE_AUX_JARS_PATH
+
+ # Default to use 256MB
+ export HADOOP_HEAPSIZE=${HADOOP_HEAPSIZE:-256}
++
++# Disable the JNDI. This feature has critical RCE vulnerability.
++# when 2.x <= log4j.version <= 2.14.1
++export HADOOP_CLIENT_OPTS="$HADOOP_CLIENT_OPTS
-Dlog4j2.formatMsgNoLookups=true"
+diff --git a/pom.xml b/pom.xml
+index 123c642c13..e97c9187ab 100644
+--- a/pom.xml
++++ b/pom.xml
+@@ -181,7 +181,7 @@
+ <kryo.version>3.0.3</kryo.version>
+ <libfb303.version>0.9.3</libfb303.version>
+ <libthrift.version>0.9.3</libthrift.version>
+- <log4j2.version>2.12.1</log4j2.version>
++ <log4j2.version>2.15.0</log4j2.version>
+ <opencsv.version>2.3</opencsv.version>
+ <orc.version>1.5.6</orc.version>
+ <mockito-all.version>1.10.19</mockito-all.version>
+diff --git a/standalone-metastore/pom.xml b/standalone-metastore/pom.xml
+index e74a3b6ebe..32865dd448 100644
+--- a/standalone-metastore/pom.xml
++++ b/standalone-metastore/pom.xml
+@@ -79,7 +79,7 @@
+ <libfb303.version>0.9.3</libfb303.version>
+ <libthrift.version>0.9.3</libthrift.version>
+ <mockito-all.version>1.10.19</mockito-all.version>
+- <log4j2.version>2.12.1</log4j2.version>
++ <log4j2.version>2.15.0</log4j2.version>
+ <orc.version>1.5.1</orc.version>
+ <protobuf.version>2.5.0</protobuf.version>
+ <sqlline.version>1.3.0</sqlline.version>
diff --git a/bigtop-packages/src/common/hive/patch9-log4j2-2.16.0.diff
b/bigtop-packages/src/common/hive/patch9-log4j2-2.16.0.diff
new file mode 100644
index 0000000..d21837b
--- /dev/null
+++ b/bigtop-packages/src/common/hive/patch9-log4j2-2.16.0.diff
@@ -0,0 +1,26 @@
+diff --git a/pom.xml b/pom.xml
+index e97c9187ab..bd9c1457f5 100644
+--- a/pom.xml
++++ b/pom.xml
+@@ -181,7 +181,7 @@
+ <kryo.version>3.0.3</kryo.version>
+ <libfb303.version>0.9.3</libfb303.version>
+ <libthrift.version>0.9.3</libthrift.version>
+- <log4j2.version>2.15.0</log4j2.version>
++ <log4j2.version>2.16.0</log4j2.version>
+ <opencsv.version>2.3</opencsv.version>
+ <orc.version>1.5.6</orc.version>
+ <mockito-all.version>1.10.19</mockito-all.version>
+diff --git a/standalone-metastore/pom.xml b/standalone-metastore/pom.xml
+index 32865dd448..32f66359f4 100644
+--- a/standalone-metastore/pom.xml
++++ b/standalone-metastore/pom.xml
+@@ -79,7 +79,7 @@
+ <libfb303.version>0.9.3</libfb303.version>
+ <libthrift.version>0.9.3</libthrift.version>
+ <mockito-all.version>1.10.19</mockito-all.version>
+- <log4j2.version>2.15.0</log4j2.version>
++ <log4j2.version>2.16.0</log4j2.version>
+ <orc.version>1.5.1</orc.version>
+ <protobuf.version>2.5.0</protobuf.version>
+ <sqlline.version>1.3.0</sqlline.version>
diff --git a/bigtop.bom b/bigtop.bom
index 1072723..f637ce4 100644
--- a/bigtop.bom
+++ b/bigtop.bom
@@ -166,7 +166,7 @@ bigtop {
'hive' {
name = 'hive'
relNotes = 'Apache Hive'
- version { base = '3.1.2'; pkg = base; release = 1 }
+ version { base = '3.1.2'; pkg = base; release = 2 }
tarball { destination = "apache-${name}-${version.base}-src.tar.gz"
source = destination }
url { download_path = "/$name/$name-${version.base}/"