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;
}