mirror of https://github.com/waku-org/nwaku.git
fix: store config without db-path leads SIGSEGV (#1218)
This commit is contained in:
parent
787464487b
commit
ad628b5b52
|
@ -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():
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
Loading…
Reference in New Issue