You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hawq.apache.org by wl...@apache.org on 2015/10/27 04:01:50 UTC

incubator-hawq git commit: HAWQ-75. fix coredump when hawq reconnect libyarn.

Repository: incubator-hawq
Updated Branches:
  refs/heads/master 2fc73a095 -> b0c77a0a2


HAWQ-75. fix coredump when hawq reconnect libyarn.


Project: http://git-wip-us.apache.org/repos/asf/incubator-hawq/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-hawq/commit/b0c77a0a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-hawq/tree/b0c77a0a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-hawq/diff/b0c77a0a

Branch: refs/heads/master
Commit: b0c77a0a27b4905adc9237054e15d1a3aabc3cbf
Parents: 2fc73a0
Author: Wen Lin <wl...@pivotal.io>
Authored: Tue Oct 27 11:07:25 2015 +0800
Committer: Wen Lin <wl...@pivotal.io>
Committed: Tue Oct 27 11:07:25 2015 +0800

----------------------------------------------------------------------
 depends/libyarn/src/libyarnclient/LibYarnClientC.cpp    |  7 ++++++-
 .../resourcebroker/resourcebroker_LIBYARN_proc.c        | 12 ++++++------
 2 files changed, 12 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/b0c77a0a/depends/libyarn/src/libyarnclient/LibYarnClientC.cpp
----------------------------------------------------------------------
diff --git a/depends/libyarn/src/libyarnclient/LibYarnClientC.cpp b/depends/libyarn/src/libyarnclient/LibYarnClientC.cpp
index 916b2c6..a9aa29e 100644
--- a/depends/libyarn/src/libyarnclient/LibYarnClientC.cpp
+++ b/depends/libyarn/src/libyarnclient/LibYarnClientC.cpp
@@ -124,6 +124,11 @@ extern "C" {
 	int  newLibYarnClient(char* user, char *rmHost, char *rmPort,
 					char *schedHost, char *schedPort, char *amHost,
 					int32_t amPort, char *am_tracking_url,LibYarnClient_t **client,int heartbeatInterval) {
+
+		if(user == NULL || rmHost== NULL || rmPort == NULL || schedHost == NULL || schedPort == NULL
+			|| amHost ==NULL || am_tracking_url == NULL)
+			return FUNCTION_FAILED;
+
 		string userStr(user);
 		string rmHostStr(rmHost);
 		string rmPortStr(rmPort);
@@ -131,7 +136,7 @@ extern "C" {
 		string schedPortStr(schedPort);
 		string amHostStr(amHost);
 		string amTrackingUrlStr(am_tracking_url);
-		*client =  new LibYarnClient_t(userStr, rmHostStr, rmPortStr, schedHostStr, schedPortStr,
+		*client = new LibYarnClient_t(userStr, rmHostStr, rmPortStr, schedHostStr, schedPortStr,
 						amHostStr, amPort, amTrackingUrlStr,heartbeatInterval);
 		return FUNCTION_SUCCEEDED;
 	}

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/b0c77a0a/src/backend/resourcemanager/resourcebroker/resourcebroker_LIBYARN_proc.c
----------------------------------------------------------------------
diff --git a/src/backend/resourcemanager/resourcebroker/resourcebroker_LIBYARN_proc.c b/src/backend/resourcemanager/resourcebroker/resourcebroker_LIBYARN_proc.c
index 7e0e23f..8f757d1 100644
--- a/src/backend/resourcemanager/resourcebroker/resourcebroker_LIBYARN_proc.c
+++ b/src/backend/resourcemanager/resourcebroker/resourcebroker_LIBYARN_proc.c
@@ -289,6 +289,12 @@ int ResBrokerMainInternal(void)
 		elog(LOG, "YARN mode resource broker get result of finish yarn application "
 				  "through libYARN %d",
 				  yarnres);
+		if (YARNUser != NULL && YARNUserShouldFree)
+		{
+			free(YARNUser);
+		}
+		YARNUser = NULL;
+		YARNUserShouldFree = true;
 		yarnres = RB2YARN_disconnectFromYARN();
 		elog(LOG, "YARN mode resource broker get result of disconnecting YARN "
 				  "through libYARN %d",
@@ -1773,13 +1779,7 @@ int  RB2YARN_disconnectFromYARN(void)
 	if ( YARNJobID != NULL ) {
 		free(YARNJobID);
 	}
-	if (YARNUser != NULL && YARNUserShouldFree )
-	{
-		free(YARNUser);
-	}
 	LIBYARNClient 		= NULL;
 	YARNJobID 			= NULL;
-	YARNUser 			= NULL;
-	YARNUserShouldFree	= true;
 	return FUNCTION_SUCCEEDED;
 }