open-webui/backend/open_webui
Classic298 04fae8b357
fix: use NullPool for SQLCipher engine to prevent segfault (#22273)
The SQLCipher engine used a dummy sqlite:// URL with a creator function,
which caused SQLAlchemy to auto-select SingletonThreadPool. This pool
non-deterministically closes in-use connections when thread count exceeds
pool_size (default 5), leading to use-after-free segfaults (exit code 139)
in the native sqlcipher3 C library during multi-threaded operations like
user signup.

Now defaults to NullPool (each operation creates/closes its own connection)
for maximum safety with the native C extension. Also respects the
DATABASE_POOL_SIZE setting: if explicitly set >0, QueuePool is used with
the configured pool parameters, matching the behavior of other DB paths.

Fixes #22258
2026-03-06 14:04:10 -06:00
..
data refac: mv backend files to /open_webui dir 2024-09-04 16:54:48 +02:00
internal fix: use NullPool for SQLCipher engine to prevent segfault (#22273) 2026-03-06 14:04:10 -06:00
migrations refac 2026-02-28 17:08:41 -06:00
models refac 2026-03-01 14:06:26 -06:00
retrieval fix: offline model retrieval, re-raise to disable instead of returning useless fallback (#22106) 2026-03-01 13:52:31 -05:00
routers chore: format 2026-03-02 17:04:52 -06:00
socket feat: Timeout for event_call events (#22222) 2026-03-04 16:39:53 -06:00
static refac 2025-08-10 00:02:58 +04:00
storage chore: format 2026-02-11 16:24:11 -06:00
test refac 2026-02-21 14:19:28 -06:00
tools fix: grant file access for knowledge attached to shared workspace models (#22151) 2026-03-02 18:08:49 -05:00
utils fix: use same metric description as OTel (#22192) (#22293) 2026-03-06 13:58:25 -06:00
__init__.py Update __init__.py 2025-04-15 09:55:35 +02:00
alembic.ini fix: Alembic CLI commands from failing 2025-08-15 04:17:47 -04:00
config.py refac 2026-02-28 13:07:10 -06:00
constants.py feat/enh: optional password validation 2025-11-20 17:44:49 -05:00
env.py refac 2026-03-04 17:09:02 -06:00
functions.py chore: format 2026-02-11 16:24:11 -06:00
main.py chore: format 2026-02-28 21:28:59 -06:00
tasks.py refac 2026-02-12 15:29:34 -06:00