You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by pr...@apache.org on 2020/12/04 15:51:22 UTC

[ranger] 01/03: RANGER-3092: KMS fails to start with NullPointerException in catalina.out logs

This is an automated email from the ASF dual-hosted git repository.

pradeep pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ranger.git

commit cbd4cdbb2567e86da7ecd89c0d55b088b107e559
Author: Mahesh Bandal <ma...@gmail.com>
AuthorDate: Wed Dec 2 23:47:44 2020 +0530

    RANGER-3092: KMS fails to start with NullPointerException in catalina.out logs
    
    Signed-off-by: pradeep <pr...@apache.org>
---
 .../java/org/apache/ranger/server/tomcat/EmbeddedServer.java | 12 +++++++++---
 kms/scripts/ranger-kms                                       |  3 ++-
 .../org/apache/ranger/tagsync/process/TagSynchronizer.java   | 12 +++++++++---
 .../ranger/authentication/UnixAuthenticationService.java     | 12 +++++++++---
 4 files changed, 29 insertions(+), 10 deletions(-)

diff --git a/embeddedwebserver/src/main/java/org/apache/ranger/server/tomcat/EmbeddedServer.java b/embeddedwebserver/src/main/java/org/apache/ranger/server/tomcat/EmbeddedServer.java
index f6d735c..30d8305 100644
--- a/embeddedwebserver/src/main/java/org/apache/ranger/server/tomcat/EmbeddedServer.java
+++ b/embeddedwebserver/src/main/java/org/apache/ranger/server/tomcat/EmbeddedServer.java
@@ -90,9 +90,15 @@ public class EmbeddedServer {
 			configFile = args[0];
 		}
 
-		// load log configuration file dynamically if log4j.properties changed
-		String logPropFile = StringUtils.splitByWholeSeparator(System.getProperty("log4j.configuration"), ":")[1];
-		PropertyConfigurator.configureAndWatch(logPropFile, 10000L);
+		try {
+			// load log configuration file dynamically if log4j.properties changed
+			if (StringUtils.isNotBlank(System.getProperty("log4j.configuration"))) {
+				String logPropFile = StringUtils.splitByWholeSeparator(System.getProperty("log4j.configuration"), ":")[1];
+				PropertyConfigurator.configureAndWatch(logPropFile, 10000L);
+			}
+		} catch (Exception ignored) {
+			LOG.warning("Failed to get log4j.configuration  Reason: " + ignored.toString());
+		}
 
 		EmbeddedServerUtil.loadRangerConfigProperties(configFile);
 	}
diff --git a/kms/scripts/ranger-kms b/kms/scripts/ranger-kms
index bfe7bd5..5eebc77 100755
--- a/kms/scripts/ranger-kms
+++ b/kms/scripts/ranger-kms
@@ -98,6 +98,7 @@ TOMCAT_LOG_DIR=${RANGER_KMS_LOG_DIR}
 
 TOMCAT_LOG_FILE=${TOMCAT_LOG_DIR}/catalina.out
 TOMCAT_STOP_LOG_FILE=${TOMCAT_LOG_DIR}/stop_catalina.out
+KMS_LOG_PROPERTIES_FILE=${RANGER_KMS_EWS_CONF_DIR}/kms-log4j.properties
 
 if [ ! -d ${TOMCAT_LOG_DIR} ]
 then
@@ -106,7 +107,7 @@ fi
 
 KMS_CONF_DIR=${RANGER_KMS_EWS_DIR}/webapp/WEB-INF/classes/conf
 SERVER_NAME=rangerkms
-JAVA_OPTS="${JAVA_OPTS} ${DB_SSL_PARAM} -Duser=${USER} -Dhostname=${HOSTNAME} -Dservername=${SERVER_NAME} -Dcatalina.base=${RANGER_KMS_EWS_DIR} -Dkms.config.dir=${KMS_CONF_DIR} -Dkms.log.dir=${TOMCAT_LOG_DIR} -cp ${RANGER_KMS_EWS_CONF_DIR}:${RANGER_KMS_EWS_LIB_DIR}/*:${RANGER_KMS_EWS_DIR}/webapp/lib/*:${JAVA_HOME}/lib/*:${RANGER_HADOOP_CONF_DIR}/*:$CLASSPATH "
+JAVA_OPTS="${JAVA_OPTS} ${DB_SSL_PARAM} -Duser=${USER} -Dhostname=${HOSTNAME} -Dservername=${SERVER_NAME} -Dcatalina.base=${RANGER_KMS_EWS_DIR} -Dkms.config.dir=${KMS_CONF_DIR} -Dlog4j.configuration=file:${KMS_LOG_PROPERTIES_FILE} -Dkms.log.dir=${TOMCAT_LOG_DIR} -cp ${RANGER_KMS_EWS_CONF_DIR}:${RANGER_KMS_EWS_LIB_DIR}/*:${RANGER_KMS_EWS_DIR}/webapp/lib/*:${JAVA_HOME}/lib/*:${RANGER_HADOOP_CONF_DIR}/*:$CLASSPATH "
 createRangerKMSPid () {
 	SLEEP_TIME_AFTER_START=5
 	nohup java -D${PROC_NAME} ${JAVA_OPTS} ${START_CLASS_NAME} ${KMS_CONFIG_FILENAME} > ${TOMCAT_LOG_FILE} 2>&1 &
diff --git a/tagsync/src/main/java/org/apache/ranger/tagsync/process/TagSynchronizer.java b/tagsync/src/main/java/org/apache/ranger/tagsync/process/TagSynchronizer.java
index 1b0649f..c723b0f 100644
--- a/tagsync/src/main/java/org/apache/ranger/tagsync/process/TagSynchronizer.java
+++ b/tagsync/src/main/java/org/apache/ranger/tagsync/process/TagSynchronizer.java
@@ -55,9 +55,15 @@ public class TagSynchronizer {
 
 	public static void main(String[] args) {
 
-		// load log configuration file dynamically if log4j.properties changed
-		String logPropFile = StringUtils.splitByWholeSeparator(System.getProperty("log4j.configuration"), ":")[1];
-		PropertyConfigurator.configureAndWatch(logPropFile, 10000L);
+		try {
+			// load log configuration file dynamically if log4j.properties changed
+			if (StringUtils.isNotBlank(System.getProperty("log4j.configuration"))) {
+				String logPropFile = StringUtils.splitByWholeSeparator(System.getProperty("log4j.configuration"), ":")[1];
+				PropertyConfigurator.configureAndWatch(logPropFile, 10000L);
+			}
+		} catch (Exception ignored) {
+			LOG.warn("Failed to get log4j.configuration  Reason: " + ignored.toString());
+		}
 
 		TagSynchronizer tagSynchronizer = new TagSynchronizer();
 
diff --git a/unixauthservice/src/main/java/org/apache/ranger/authentication/UnixAuthenticationService.java b/unixauthservice/src/main/java/org/apache/ranger/authentication/UnixAuthenticationService.java
index 4d84a96..3f7886b 100644
--- a/unixauthservice/src/main/java/org/apache/ranger/authentication/UnixAuthenticationService.java
+++ b/unixauthservice/src/main/java/org/apache/ranger/authentication/UnixAuthenticationService.java
@@ -92,9 +92,15 @@ public class UnixAuthenticationService {
 
 	public static void main(String[] args) {
 
-		// load log configuration file dynamically if log4j.properties changed
-		String logPropFile = StringUtils.splitByWholeSeparator(System.getProperty("log4j.configuration"), ":")[1];
-		PropertyConfigurator.configureAndWatch(logPropFile, 10000L);
+		try {
+			// load log configuration file dynamically if log4j.properties changed
+			if (StringUtils.isNotBlank(System.getProperty("log4j.configuration"))) {
+				String logPropFile = StringUtils.splitByWholeSeparator(System.getProperty("log4j.configuration"), ":")[1];
+				PropertyConfigurator.configureAndWatch(logPropFile, 10000L);
+			}
+		} catch (Exception ignored) {
+			LOG.warn("Failed to get log4j.configuration  Reason: " + ignored.toString());
+		}
 
 		if (args.length > 0) {
 			for (String s : args) {