From bf6822db519d3f42a96297d90dd0d00ab635b30c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Arko?= Date: Mon, 22 Dec 2025 12:32:16 +0700 Subject: [PATCH 1/2] fix 'undefined `extra_pruner`' in rescues extra_pruner is a stored sqlite3 statement, not a ruby variable. --- lib/litestack/litecache.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/litestack/litecache.rb b/lib/litestack/litecache.rb index 5ce5657..575027e 100644 --- a/lib/litestack/litecache.rb +++ b/lib/litestack/litecache.rb @@ -77,7 +77,7 @@ def set(key, value, expires_in = nil) capture(:set, key) rescue SQLite3::FullException transaction do - run_stmt(extra_pruner, 0.2) + run_stmt(:extra_pruner, 0.2) run_sql("vacuum") end retry @@ -94,7 +94,7 @@ def set_multi(keys_and_values, expires_in = nil) run_stmt(:setter, key, v, expires_in) capture(:set, key) rescue SQLite3::FullException - run_stmt(extra_pruner, 0.2) + run_stmt(:extra_pruner, 0.2) run_sql("vacuum") retry end From e2b86caef9047305664ad5ea18119edcfdf788fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Arko?= Date: Wed, 7 Jan 2026 16:13:12 -0800 Subject: [PATCH 2/2] sqlite never allows vaccum inside a transaction --- lib/litestack/litecache.rb | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/lib/litestack/litecache.rb b/lib/litestack/litecache.rb index 575027e..5504b51 100644 --- a/lib/litestack/litecache.rb +++ b/lib/litestack/litecache.rb @@ -76,10 +76,8 @@ def set(key, value, expires_in = nil) run_stmt(:setter, key, value, expires_in) capture(:set, key) rescue SQLite3::FullException - transaction do - run_stmt(:extra_pruner, 0.2) - run_sql("vacuum") - end + run_stmt(:extra_pruner, 0.2) + run_sql("vacuum") retry end true