diff --git a/codex/stores/keyutils.nim b/codex/stores/keyutils.nim index 1dbeccb4..f192d902 100644 --- a/codex/stores/keyutils.nim +++ b/codex/stores/keyutils.nim @@ -42,7 +42,7 @@ proc createBlockExpirationMetadataKey*(cid: Cid): ?!Key = BlocksTtlKey / $cid proc createBlockExpirationMetadataQueryKey*(): ?!Key = - let queryString = ? (BlocksTtlKey / "*") + let queryString = $(BlocksTtlKey) Key.init(queryString) proc createBlockCidAndProofMetadataKey*(treeCid: Cid, index: Natural): ?!Key = diff --git a/leveldb/leveldbds.nim b/leveldb/leveldbds.nim index 7323b7e2..fc270a86 100644 --- a/leveldb/leveldbds.nim +++ b/leveldb/leveldbds.nim @@ -111,9 +111,10 @@ proc iterateKeyPrefixToQueue(self: LevelDbDatastore, query: Query, queue: AsyncQ dec skip else: await queue.put((keyStr, valueStr)) - dec itemsLeft - if itemsLeft < 1: - break + if query.offset > 0: + dec itemsLeft + if itemsLeft < 1: + break # Signal to the iterator loop that we're finished. await queue.put(("", "")) diff --git a/tests/integration/multinodes.nim b/tests/integration/multinodes.nim index 43ca2b8a..50719532 100644 --- a/tests/integration/multinodes.nim +++ b/tests/integration/multinodes.nim @@ -137,6 +137,9 @@ template multinodesuite*(name: string, body: untyped) = sanitize($starttime) / sanitize($role & "_" & $roleIdx) + let metadir = getTempDir() / "CodexMeta" / + sanitize($starttime) / + sanitize($role & "_" & $roleIdx) try: if config.logFile.isSome: let updatedLogFile = getLogFile(role, some roleIdx) @@ -144,6 +147,7 @@ template multinodesuite*(name: string, body: untyped) = config.addCliOption("--api-port", $ await nextFreePort(8080 + nodeIdx)) config.addCliOption("--data-dir", datadir) + config.addCliOption("--meta-dir", metadir) config.addCliOption("--nat", "127.0.0.1") config.addCliOption("--listen-addrs", "/ip4/127.0.0.1/tcp/0") config.addCliOption("--disc-ip", "127.0.0.1") diff --git a/tests/integration/twonodes.nim b/tests/integration/twonodes.nim index d85a449e..715e4365 100644 --- a/tests/integration/twonodes.nim +++ b/tests/integration/twonodes.nim @@ -23,7 +23,9 @@ template twonodessuite*(name: string, debug1, debug2: string, body) = var account2 {.inject, used.}: Address let dataDir1 = getTempDir() / "Codex1" + let metaDir1 = getTempDir() / "Codex1Meta" let dataDir2 = getTempDir() / "Codex2" + let metaDir2 = getTempDir() / "Codex2Meta" setup: client1 = CodexClient.new("http://localhost:8080/api/codex/v1") @@ -34,6 +36,7 @@ template twonodessuite*(name: string, debug1, debug2: string, body) = var node1Args = @[ "--api-port=8080", "--data-dir=" & dataDir1, + "--meta-dir=" & metaDir1, "--nat=127.0.0.1", "--disc-ip=127.0.0.1", "--disc-port=8090", @@ -57,6 +60,7 @@ template twonodessuite*(name: string, debug1, debug2: string, body) = var node2Args = @[ "--api-port=8081", "--data-dir=" & dataDir2, + "--meta-dir=" & metaDir2, "--nat=127.0.0.1", "--disc-ip=127.0.0.1", "--disc-port=8091", @@ -85,5 +89,7 @@ template twonodessuite*(name: string, debug1, debug2: string, body) = removeDir(dataDir1) removeDir(dataDir2) + removeDir(metaDir1) + removeDir(metaDir2) body