From 4a4cf92eb9c00f54b6e9f916070fe82454ae86c2 Mon Sep 17 00:00:00 2001
From: Daneyon Hansen <danehans@cisco.com>
Date: Mon, 15 Jun 2015 23:05:31 +0000
Subject: [PATCH] Fixes MariaDB to support Heat

When spawning Heat stacks, the DB reaches the max_connections
limit. This causes MariaDB to block all traffic by source IP,
essentially blocking all services. This patch introduces the
MARIADB_MAX_CONNECTIONS parameter to make the max_connections
configurable. The default of 151 max_connections is maintained.

Closes-Bug: #1465422

Change-Id: I869aa9f117c6fa959b1c6948dfc379f30a6bc1d7
---
 docker/common/mariadb-app/config-mysql.sh | 1 +
 docs/integration-guide.md                 | 1 +
 tools/genenv                              | 2 ++
 3 files changed, 4 insertions(+)

diff --git a/docker/common/mariadb-app/config-mysql.sh b/docker/common/mariadb-app/config-mysql.sh
index b11939b8b..6cc6afa78 100755
--- a/docker/common/mariadb-app/config-mysql.sh
+++ b/docker/common/mariadb-app/config-mysql.sh
@@ -19,6 +19,7 @@ crudini --set $server_cnf mysqld default-storage-engine $DEFAULT_STORAGE_ENGINE
 crudini --set $server_cnf mysqld collation-server $COLLATION_SERVER
 crudini --set $server_cnf mysqld init-connect "'${INIT_CONNECT}'"
 crudini --set $server_cnf mysqld character-set-server $CHAR_SET_SERVER
+crudini --set $server_cnf mysqld max_connections "$MARIADB_MAX_CONNECTIONS"
 if [ "${INNODB_FILE_PER_TABLE}" == "true" ] || ["${INNODB_FILE_PER_TABLE}" == "True" ] ; then
     crudini --set $server_cnf mysqld innodb_file_per_table 1
 fi
diff --git a/docs/integration-guide.md b/docs/integration-guide.md
index 884d74f22..0deb75dda 100755
--- a/docs/integration-guide.md
+++ b/docs/integration-guide.md
@@ -77,6 +77,7 @@ all containers.  This allows a simple method of ensuring every type of node
     KEYSTONE_PUBLIC_SERVICE_HOST=<IP> - The IP address where Keystone is running
     MARIADB_ROOT_PASSWORD=<mariadb root password> - defines the MariaDB root password
     MARIADB_SERVICE_HOST=<IP> - The IP Address where Mariadb is running
+    MARIADB_MAX_CONNECTIONS=<151> - The maximum number of connections to the MariaDB server
     NETWORK_MANAGER=<nova|neutron> - Use Nova or Neutron networking
     NOVA_API_SERVICE_HOST=<IP> - The IP Address where the Nova API Service is hosted
     METADATA_HOST=<IP> - The IP address of the Nova Metadata service
diff --git a/tools/genenv b/tools/genenv
index fdb192000..63b4189ae 100755
--- a/tools/genenv
+++ b/tools/genenv
@@ -31,6 +31,7 @@ INIT_HEAT_DB=true
 INIT_KEYSTONE_DB=true
 INIT_NOVA_DB=true
 MARIADB_ROOT_PASSWORD=kolla
+MARIADB_MAX_CONNECTIONS=151
 PASSWORD=12345
 
 
@@ -256,6 +257,7 @@ KEYSTONE_DB_PASSWORD=$KEYSTONE_DB_PASSWORD
 KEYSTONE_PUBLIC_SERVICE_HOST=$KEYSTONE_PUBLIC_SERVICE_HOST
 MARIADB_SERVICE_HOST=$HOST_IP
 MARIADB_ROOT_PASSWORD=$MARIADB_ROOT_PASSWORD
+MARIADB_MAX_CONNECTIONS=$MARIADB_MAX_CONNECTIONS
 NETWORK_MANAGER=$NETWORK_MANAGER
 NOVA_API_SERVICE_HOST=$NOVA_API_SERVICE_HOST
 NOVA_METADATA_API_SERVICE_HOST=$NOVA_METADATA_API_SERVICE_HOST
-- 
GitLab