From ae99e6927e687ab1af5d205b9f869ba42dc2a643 Mon Sep 17 00:00:00 2001 From: ming Date: Wed, 21 Aug 2024 08:11:19 -0400 Subject: [PATCH] fix: sqlite3 lockout timeout (#3463) sqlite3 lockout timeout --- src/backend/base/langflow/services/database/service.py | 5 ++++- src/backend/base/langflow/services/settings/base.py | 2 ++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/backend/base/langflow/services/database/service.py b/src/backend/base/langflow/services/database/service.py index 700e900d6..2befcd3c7 100644 --- a/src/backend/base/langflow/services/database/service.py +++ b/src/backend/base/langflow/services/database/service.py @@ -50,7 +50,10 @@ class DatabaseService(Service): if self.settings_service.settings.database_url and self.settings_service.settings.database_url.startswith( "sqlite" ): - connect_args = {"check_same_thread": False} + connect_args = { + "check_same_thread": False, + "timeout": self.settings_service.settings.db_connect_timeout, + } else: connect_args = {} try: diff --git a/src/backend/base/langflow/services/settings/base.py b/src/backend/base/langflow/services/settings/base.py index 92a369d68..c0cb35325 100644 --- a/src/backend/base/langflow/services/settings/base.py +++ b/src/backend/base/langflow/services/settings/base.py @@ -74,6 +74,8 @@ class Settings(BaseSettings): max_overflow: int = 20 """The number of connections to allow that can be opened beyond the pool size. If not provided, the default is 20.""" + db_connect_timeout: int = 20 + """The number of seconds to wait before giving up on a lock to released or establishing a connection to the database.""" # sqlite configuration sqlite_pragmas: Optional[dict] = {"synchronous": "NORMAL", "journal_mode": "WAL"}