diff --git a/waku/v2/node/storage/message/sqlite_store/sqlite_store.nim b/waku/v2/node/storage/message/sqlite_store/sqlite_store.nim index 2eb238aec..8511e6e7f 100644 --- a/waku/v2/node/storage/message/sqlite_store/sqlite_store.nim +++ b/waku/v2/node/storage/message/sqlite_store/sqlite_store.nim @@ -19,6 +19,10 @@ logScope: proc init(db: SqliteDatabase): MessageStoreResult[void] = + ## Misconfiguration can lead to nil DB + if db.isNil(): + return err("db not initialized") + # Create table, if doesn't exist let resCreate = createTable(db) if resCreate.isErr(): diff --git a/waku/v2/node/storage/peer/waku_peer_storage.nim b/waku/v2/node/storage/peer/waku_peer_storage.nim index 3d351a8f0..74bc31803 100644 --- a/waku/v2/node/storage/peer/waku_peer_storage.nim +++ b/waku/v2/node/storage/peer/waku_peer_storage.nim @@ -61,6 +61,9 @@ proc encode*(storedInfo: StoredInfo): PeerStorageResult[ProtoBuffer] = ########################## proc new*(T: type WakuPeerStorage, db: SqliteDatabase): PeerStorageResult[T] = + ## Misconfiguration can lead to nil DB + if db.isNil(): + return err("db not initialized") ## Create the "Peer" table ## It contains: diff --git a/waku/v2/node/wakunode2.nim b/waku/v2/node/wakunode2.nim index 52b8dcdca..0bae560a6 100644 --- a/waku/v2/node/wakunode2.nim +++ b/waku/v2/node/wakunode2.nim @@ -886,20 +886,25 @@ when isMainModule: storeTuple.pStorage = res.value if conf.persistMessages: - if conf.sqliteStore: + if conf.sqliteStore: + debug "setting up sqlite-only store" let res = SqliteStore.init(sqliteDatabase) if res.isErr(): warn "failed to init message store", err = res.error waku_node_errors.inc(labelValues = ["init_store_failure"]) else: storeTuple.mStorage = res.value - else: + elif not sqliteDatabase.isNil(): + debug "setting up dual message store" let res = DualMessageStore.init(sqliteDatabase, conf.storeCapacity) if res.isErr(): warn "failed to init message store", err = res.error waku_node_errors.inc(labelValues = ["init_store_failure"]) else: storeTuple.mStorage = res.value + else: + debug "setting up in-memory store" + storeTuple.mStorage = StoreQueueRef.new(conf.storeCapacity) ok(storeTuple)