From dd2da22c7540f73cc93f1e35e7bfac00c9062c40 Mon Sep 17 00:00:00 2001
From: Danny Auble <da@schedmd.com>
Date: Tue, 26 May 2015 10:43:22 -0700
Subject: [PATCH] Make sure only 1 archive is happening at a time.

---
 .../accounting_storage/mysql/accounting_storage_mysql.c  | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/plugins/accounting_storage/mysql/accounting_storage_mysql.c b/src/plugins/accounting_storage/mysql/accounting_storage_mysql.c
index aedb8593839..1392b9c5b1c 100644
--- a/src/plugins/accounting_storage/mysql/accounting_storage_mysql.c
+++ b/src/plugins/accounting_storage/mysql/accounting_storage_mysql.c
@@ -2859,10 +2859,17 @@ extern List jobacct_storage_p_get_jobs_cond(mysql_conn_t *mysql_conn,
 extern int jobacct_storage_p_archive(mysql_conn_t *mysql_conn,
 				     slurmdb_archive_cond_t *arch_cond)
 {
+	int rc;
+
 	if (check_connection(mysql_conn) != SLURM_SUCCESS)
 		return ESLURM_DB_CONNECTION;
 
-	return as_mysql_jobacct_process_archive(mysql_conn, arch_cond);
+	/* Make sure only 1 archive is happening at a time. */
+	slurm_mutex_lock(&usage_rollup_lock);
+	rc = as_mysql_jobacct_process_archive(mysql_conn, arch_cond);
+	slurm_mutex_unlock(&usage_rollup_lock);
+
+	return rc;
 }
 
 /*
-- 
GitLab