@@ -3,6 +3,7 @@ package verifier
33import (
44 "fmt"
55
6+ "github.com/cockroachdb/pebble"
67 "github.com/dgraph-io/badger/v2"
78 "github.com/rs/zerolog"
89 "github.com/rs/zerolog/log"
@@ -25,11 +26,20 @@ import (
2526// It assumes the latest sealed block has been executed, and the chunk data packs have not been
2627// pruned.
2728func VerifyLastKHeight (k uint64 , chainID flow.ChainID , protocolDataDir string , chunkDataPackDir string ) error {
28- db , storages , chunkDataPacks , state , verifier , err := initStorages (chainID , protocolDataDir , chunkDataPackDir )
29+ db , storages , cdpDB , chunkDataPacks , state , verifier , err := initStorages (chainID , protocolDataDir , chunkDataPackDir )
2930 if err != nil {
3031 return fmt .Errorf ("could not init storages: %w" , err )
3132 }
32- defer db .Close ()
33+ defer func () {
34+ err := db .Close ()
35+ if err != nil {
36+ log .Error ().Err (err ).Msg ("failed to close db" )
37+ }
38+ err = cdpDB .Close ()
39+ if err != nil {
40+ log .Error ().Err (err ).Msg ("failed to close chunk data pack db" )
41+ }
42+ }()
3343
3444 lastSealed , err := state .Sealed ().Head ()
3545 if err != nil {
@@ -85,6 +95,7 @@ func VerifyRange(
8595func initStorages (chainID flow.ChainID , dataDir string , chunkDataPackDir string ) (
8696 * badger.DB ,
8797 * storage.All ,
98+ * pebble.DB ,
8899 storage.ChunkDataPacks ,
89100 protocol.State ,
90101 module.ChunkVerifier ,
@@ -95,18 +106,18 @@ func initStorages(chainID flow.ChainID, dataDir string, chunkDataPackDir string)
95106 storages := common .InitStorages (db )
96107 state , err := common .InitProtocolState (db , storages )
97108 if err != nil {
98- return nil , nil , nil , nil , nil , fmt .Errorf ("could not init protocol state: %w" , err )
109+ return nil , nil , nil , nil , nil , nil , fmt .Errorf ("could not init protocol state: %w" , err )
99110 }
100111
101112 chunkDataPackDB , err := storagepebble .OpenDefaultPebbleDB (chunkDataPackDir )
102113 if err != nil {
103- return nil , nil , nil , nil , nil , fmt .Errorf ("could not open chunk data pack DB: %w" , err )
114+ return nil , nil , nil , nil , nil , nil , fmt .Errorf ("could not open chunk data pack DB: %w" , err )
104115 }
105116 chunkDataPacks := storagepebble .NewChunkDataPacks (metrics .NewNoopCollector (),
106117 chunkDataPackDB , storages .Collections , 1000 )
107118
108119 verifier := makeVerifier (log .Logger , chainID , storages .Headers )
109- return db , storages , chunkDataPacks , state , verifier , nil
120+ return db , storages , chunkDataPackDB , chunkDataPacks , state , verifier , nil
110121}
111122
112123func verifyHeight (
0 commit comments