From: Matt Joiner <anacrolix@gmail.com> Date: Thu, 27 Jun 2024 04:31:31 +0000 (+1000) Subject: Fix sqlite piece completion error when dirs are missing X-Git-Tag: v1.57.0~27 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=c5175082b72b1e03d990c0f49be1ccdb351ee5c8;p=btrtrc.git Fix sqlite piece completion error when dirs are missing --- 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