From cbb3f727bc428bda8fcdab9558102a0a02add12e Mon Sep 17 00:00:00 2001 From: Kevin Chung Date: Mon, 29 Jun 2020 19:12:22 -0400 Subject: [PATCH] Enable pool_pre_ping on SQLAlchemy connections (#1520) * Integrates SQLAlchemy `pool_pre_ping` to check SQLAlchemy connections on checkout. * Closes #1509, #1438, #1395, #467 --- CTFd/config.ini | 1 + CTFd/config.py | 3 +++ 2 files changed, 4 insertions(+) diff --git a/CTFd/config.ini b/CTFd/config.ini index 7398219d..1df2f997 100644 --- a/CTFd/config.ini +++ b/CTFd/config.ini @@ -41,6 +41,7 @@ UPDATE_CHECK = APPLICATION_ROOT = SERVER_SENT_EVENTS = SQLALCHEMY_MAX_OVERFLOW = +SQLALCHEMY_POOL_PRE_PING = [oauth] OAUTH_CLIENT_ID = diff --git a/CTFd/config.py b/CTFd/config.py index b21423b9..962e6e67 100644 --- a/CTFd/config.py +++ b/CTFd/config.py @@ -340,6 +340,9 @@ class Config(object): "max_overflow": int(os.getenv("SQLALCHEMY_MAX_OVERFLOW", 0)) or int(empty_str_cast(config_ini["optional"]["SQLALCHEMY_MAX_OVERFLOW"], default=0)) # noqa: E131 or 20, # noqa: E131 + "pool_pre_ping": process_boolean_str(os.getenv("SQLALCHEMY_POOL_PRE_PING")) + or empty_str_cast(config_ini["optional"]["SQLALCHEMY_POOL_PRE_PING"]) # noqa: E131 + or True, # noqa: E131 } """