From c5175082b72b1e03d990c0f49be1ccdb351ee5c8 Mon Sep 17 00:00:00 2001 From: Matt Joiner Date: Thu, 27 Jun 2024 14:31:31 +1000 Subject: [PATCH] Fix sqlite piece completion error when dirs are missing --- storage/piece-completion.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/storage/piece-completion.go b/storage/piece-completion.go index bc646bd7..edc1e086 100644 --- a/storage/piece-completion.go +++ b/storage/piece-completion.go @@ -2,6 +2,7 @@ package storage import ( "github.com/anacrolix/log" + "os" "github.com/anacrolix/torrent/metainfo" ) @@ -18,9 +19,12 @@ type PieceCompletion interface { } func pieceCompletionForDir(dir string) (ret PieceCompletion) { + // This should be happening before sqlite attempts to open a database in the intended directory. + os.MkdirAll(dir, 0o700) ret, err := NewDefaultPieceCompletionForDir(dir) if err != nil { - log.Printf("couldn't open piece completion db in %q: %s", dir, err) + // This kinda sux using the global logger. This code is ancient. + log.Levelf(log.Warning, "couldn't open piece completion db in %q: %s", dir, err) ret = NewMapPieceCompletion() } return -- 2.48.1