From e8e94295ccc8890c048b9d8808f1ca9a5de775ce Mon Sep 17 00:00:00 2001 From: Nuno Cruces Date: Wed, 1 Oct 2025 05:51:51 +0100 Subject: [PATCH] fix: avoid shared cache memory databases (#926) --- internal/api/syncapi/peerstate_test.go | 4 ++-- internal/api/syncapi/syncapi_test.go | 3 ++- internal/kvstore/sqlitekvstore_test.go | 9 +++------ 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/internal/api/syncapi/peerstate_test.go b/internal/api/syncapi/peerstate_test.go index 81ee0c2b..9cf5f92e 100644 --- a/internal/api/syncapi/peerstate_test.go +++ b/internal/api/syncapi/peerstate_test.go @@ -5,9 +5,9 @@ import ( "testing" "time" - "github.com/garethgeorge/backrest/internal/cryptoutil" "github.com/google/go-cmp/cmp" _ "github.com/ncruces/go-sqlite3/driver" + "github.com/ncruces/go-sqlite3/vfs/memdb" ) func PeerStateManagersForTest(t testing.TB) map[string]PeerStateManager { @@ -92,7 +92,7 @@ func TestPeerStateManager_OnStateChanged(t *testing.T) { func newDbForTest(t testing.TB) *sql.DB { t.Helper() - dbpool, err := sql.Open("sqlite3", "file:"+cryptoutil.MustRandomID(64)+"?mode=memory&cache=shared") + dbpool, err := sql.Open("sqlite3", memdb.TestDB(t)) if err != nil { t.Fatalf("error creating sqlite pool: %s", err) } diff --git a/internal/api/syncapi/syncapi_test.go b/internal/api/syncapi/syncapi_test.go index 81351040..c4cfb249 100644 --- a/internal/api/syncapi/syncapi_test.go +++ b/internal/api/syncapi/syncapi_test.go @@ -23,6 +23,7 @@ import ( "github.com/garethgeorge/backrest/internal/resticinstaller" "github.com/garethgeorge/backrest/internal/testutil" "github.com/google/go-cmp/cmp" + "github.com/ncruces/go-sqlite3/vfs/memdb" "golang.org/x/net/http2" "golang.org/x/net/http2/h2c" "google.golang.org/protobuf/encoding/protojson" @@ -748,7 +749,7 @@ func newPeerUnderTest(t *testing.T, initialConfig *v1.Config) *peerUnderTest { wg.Done() }() - dbpool, err := sql.Open("sqlite3", "file:"+cryptoutil.MustRandomID(64)+"?mode=memory&cache=shared") + dbpool, err := sql.Open("sqlite3", memdb.TestDB(t)) if err != nil { t.Fatalf("failed to open sqlite pool: %v", err) } diff --git a/internal/kvstore/sqlitekvstore_test.go b/internal/kvstore/sqlitekvstore_test.go index 49571452..1e6d40d8 100644 --- a/internal/kvstore/sqlitekvstore_test.go +++ b/internal/kvstore/sqlitekvstore_test.go @@ -8,18 +8,15 @@ import ( "testing" _ "github.com/ncruces/go-sqlite3/driver" + "github.com/ncruces/go-sqlite3/vfs/memdb" ) func newTestDB(t testing.TB) *sql.DB { - db, err := sql.Open("sqlite3", "file::memory:?cache=shared") + t.Helper() + db, err := sql.Open("sqlite3", memdb.TestDB(t)) if err != nil { t.Fatalf("failed to open memory database: %v", err) } - t.Cleanup(func() { - if err := db.Close(); err != nil { - t.Logf("failed to close db: %v", err) - } - }) return db }