From 234313649067e9dbe592ccfd63147ba272690255 Mon Sep 17 00:00:00 2001
From: Danny Auble <da@llnl.gov>
Date: Fri, 14 Sep 2007 21:33:12 +0000
Subject: [PATCH] fix to make sure reconnect is off in mysql

---
 src/common/mysql_common.c                          |  3 +++
 .../jobacct_storage/mysql/jobacct_storage_mysql.c  | 14 +++++++-------
 2 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/src/common/mysql_common.c b/src/common/mysql_common.c
index 0e5a575cb2a..41c66576317 100644
--- a/src/common/mysql_common.c
+++ b/src/common/mysql_common.c
@@ -120,6 +120,7 @@ extern int mysql_get_db_connection(MYSQL **mysql_db, char *db_name,
 {
 	int rc = SLURM_SUCCESS;
 	bool storage_init = false;
+	my_bool reconnect = 0;
 
 	if(!(*mysql_db = mysql_init(*mysql_db)))
 		fatal("mysql_init failed: %s", mysql_error(*mysql_db));
@@ -144,6 +145,8 @@ extern int mysql_get_db_connection(MYSQL **mysql_db, char *db_name,
 				storage_init = true;
 			}
 		}
+		/* make sure reconnect is off */
+		mysql_options(*mysql_db, MYSQL_OPT_RECONNECT, &reconnect);
 	}
 	return rc;
 }
diff --git a/src/plugins/jobacct_storage/mysql/jobacct_storage_mysql.c b/src/plugins/jobacct_storage/mysql/jobacct_storage_mysql.c
index 14c1ea50ba1..0546aa347ce 100644
--- a/src/plugins/jobacct_storage/mysql/jobacct_storage_mysql.c
+++ b/src/plugins/jobacct_storage/mysql/jobacct_storage_mysql.c
@@ -322,7 +322,7 @@ extern int jobacct_storage_p_job_start(struct job_record *job_ptr)
 	char query[1024];
 	int reinit = 0;
 
-	if(!jobacct_mysql_db || mysql_ping(jobacct_mysql_db)) {
+	if(!jobacct_mysql_db || mysql_ping(jobacct_mysql_db) != 0) {
 		char *loc = slurm_get_jobacct_storage_loc();
 		if(jobacct_storage_p_init(loc) == SLURM_ERROR) {
 			xfree(loc);
@@ -417,7 +417,7 @@ extern int jobacct_storage_p_job_complete(struct job_record *job_ptr)
 	char	*account, *nodes;
 	int rc=SLURM_SUCCESS;
 	
-	if(!jobacct_mysql_db || mysql_ping(jobacct_mysql_db)) {
+	if(!jobacct_mysql_db || mysql_ping(jobacct_mysql_db) != 0) {
 		char *loc = slurm_get_jobacct_storage_loc();
 		if(jobacct_storage_p_init(loc) == SLURM_ERROR) {
 			xfree(loc);
@@ -475,7 +475,7 @@ extern int jobacct_storage_p_step_start(struct step_record *step_ptr)
 #endif
 	char query[1024];
 	
-	if(!jobacct_mysql_db || mysql_ping(jobacct_mysql_db)) {
+	if(!jobacct_mysql_db || mysql_ping(jobacct_mysql_db) != 0) {
 		char *loc = slurm_get_jobacct_storage_loc();
 		if(jobacct_storage_p_init(loc) == SLURM_ERROR) {
 			xfree(loc);
@@ -554,7 +554,7 @@ extern int jobacct_storage_p_step_complete(struct step_record *step_ptr)
 	char query[1024];
 	int rc =SLURM_SUCCESS;
 	
-	if(!jobacct_mysql_db || mysql_ping(jobacct_mysql_db)) {
+	if(!jobacct_mysql_db || mysql_ping(jobacct_mysql_db) != 0) {
 		char *loc = slurm_get_jobacct_storage_loc();
 		if(jobacct_storage_p_init(loc) == SLURM_ERROR) {
 			xfree(loc);
@@ -719,7 +719,7 @@ extern int jobacct_storage_p_suspend(struct job_record *job_ptr)
 		char query[1024];
 	int rc = SLURM_SUCCESS;
 	
-	if(!jobacct_mysql_db || mysql_ping(jobacct_mysql_db)) {
+	if(!jobacct_mysql_db || mysql_ping(jobacct_mysql_db) != 0) {
 		char *loc = slurm_get_jobacct_storage_loc();
 		if(jobacct_storage_p_init(loc) == SLURM_ERROR) {
 			xfree(loc);
@@ -764,7 +764,7 @@ extern void jobacct_storage_p_get_jobs(List job_list,
 					void *params)
 {
 #ifdef HAVE_MYSQL
-	if(!jobacct_mysql_db || mysql_ping(jobacct_mysql_db)) {
+	if(!jobacct_mysql_db || mysql_ping(jobacct_mysql_db) != 0) {
 		char *loc = slurm_get_jobacct_storage_loc();
 		if(jobacct_storage_p_init(loc) == SLURM_ERROR) {
 			xfree(loc);
@@ -786,7 +786,7 @@ extern void jobacct_storage_p_archive(List selected_parts,
 				       void *params)
 {
 #ifdef HAVE_MYSQL
-	if(!jobacct_mysql_db || mysql_ping(jobacct_mysql_db)) {
+	if(!jobacct_mysql_db || mysql_ping(jobacct_mysql_db) != 0) {
 		char *loc = slurm_get_jobacct_storage_loc();
 		if(jobacct_storage_p_init(loc) == SLURM_ERROR) {
 			xfree(loc);
-- 
GitLab