mirror of
https://github.com/logos-storage/logos-storage-nim.git
synced 2026-08-12 03:43:12 +00:00
chore: update nim 2.2.8 (#1424)
Signed-off-by: Arnaud <arno.deville@gmail.com> Co-authored-by: Eric <5089238+emizzle@users.noreply.github.com>
This commit is contained in:
parent
4c9ecd0766
commit
2dd97631ed
2
.github/workflows/ci.yml
vendored
2
.github/workflows/ci.yml
vendored
@ -9,7 +9,7 @@ on:
|
||||
|
||||
env:
|
||||
cache_nonce: 0 # Allows for easily busting actions/cache caches
|
||||
nim_version: v2.2.4
|
||||
nim_version: v2.2.8
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref || github.run_id }}
|
||||
|
||||
2
Makefile
2
Makefile
@ -15,7 +15,7 @@
|
||||
#
|
||||
# If NIM_COMMIT is set to "nimbusbuild", this will use the
|
||||
# version pinned by nimbus-build-system.
|
||||
PINNED_NIM_VERSION := v2.2.4
|
||||
PINNED_NIM_VERSION := v2.2.8
|
||||
|
||||
ifeq ($(NIM_COMMIT),)
|
||||
NIM_COMMIT := $(PINNED_NIM_VERSION)
|
||||
|
||||
@ -115,7 +115,8 @@ proc createStorage(
|
||||
except ValueError as err:
|
||||
return err("Failed to create Storage: invalid value for log level: " & err.msg)
|
||||
|
||||
conf.setupMetrics()
|
||||
if err =? conf.setupMetrics().errorOption:
|
||||
return err("Failed to start metrics server: " & err.msg)
|
||||
|
||||
if not (checkAndCreateDataDir((conf.dataDir).string)):
|
||||
# We are unable to access/create data folder or data folder's
|
||||
|
||||
@ -65,7 +65,9 @@ when isMainModule:
|
||||
echo "Invalid value for --log-level. " & err.msg
|
||||
quit QuitFailure
|
||||
|
||||
config.setupMetrics()
|
||||
if err =? config.setupMetrics().errorOption:
|
||||
fatal "Failed to start metrics server", err = err.msg
|
||||
quit QuitFailure
|
||||
|
||||
if not (checkAndCreateDataDir((config.dataDir).string)):
|
||||
# We are unable to access/create data folder or data folder's
|
||||
|
||||
@ -617,14 +617,17 @@ proc setupLogging*(conf: StorageConf): Option[IoHandle] =
|
||||
|
||||
return ioHandle
|
||||
|
||||
proc setupMetrics*(config: StorageConf) =
|
||||
proc setupMetrics*(config: StorageConf): ?!void =
|
||||
if config.metricsEnabled:
|
||||
let metricsAddress = config.metricsAddress
|
||||
notice "Starting metrics HTTP server",
|
||||
url = "http://" & $metricsAddress & ":" & $config.metricsPort & "/metrics"
|
||||
let server = MetricsHttpServerRef.new($metricsAddress, config.metricsPort).valueOr:
|
||||
return failure($error)
|
||||
try:
|
||||
startMetricsHttpServer($metricsAddress, config.metricsPort)
|
||||
except CatchableError as exc:
|
||||
raiseAssert exc.msg
|
||||
except Exception as exc:
|
||||
raiseAssert exc.msg # TODO fix metrics
|
||||
waitFor server.start()
|
||||
except MetricsError as exc:
|
||||
return failure(exc.msg)
|
||||
except CancelledError:
|
||||
return failure("Metrics server start was cancelled")
|
||||
success()
|
||||
|
||||
@ -119,7 +119,7 @@ proc retrieveCid(
|
||||
|
||||
while not stream.atEof:
|
||||
var
|
||||
buff = newSeqUninitialized[byte](DefaultBlockSize.int)
|
||||
buff = newSeqUninit[byte](DefaultBlockSize.int)
|
||||
len = await stream.readOnce(addr buff[0], buff.len)
|
||||
|
||||
buff.setLen(len)
|
||||
|
||||
@ -7,8 +7,6 @@
|
||||
## This file may not be copied, modified, or distributed except according to
|
||||
## those terms.
|
||||
|
||||
import std/sugar
|
||||
|
||||
import pkg/presto
|
||||
import pkg/chronos
|
||||
import pkg/libp2p
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
import pkg/questionable
|
||||
import pkg/stew/byteutils
|
||||
import pkg/libp2p
|
||||
import pkg/codexdht/discv5/node as dn
|
||||
import pkg/codexdht/discv5/routing_table as rt
|
||||
|
||||
@ -338,7 +338,8 @@ method listBlocks*(
|
||||
if queryIter.finished:
|
||||
iter.finish
|
||||
else:
|
||||
if pair =? (await queryIter.next()) and cid =? pair.key:
|
||||
let res = await queryIter.next()
|
||||
if pair =? res and cid =? pair.key:
|
||||
doAssert pair.data.len == 0
|
||||
trace "Retrieved record from repo", cid
|
||||
return Cid.init(cid.value).mapFailure
|
||||
|
||||
@ -10,7 +10,6 @@
|
||||
|
||||
{.push raises: [].}
|
||||
|
||||
import std/enumerate
|
||||
import std/parseutils
|
||||
import std/options
|
||||
|
||||
@ -41,24 +40,6 @@ func roundUp*[T](a, b: T): T =
|
||||
proc orElse*[A](a, b: Option[A]): Option[A] =
|
||||
if (a.isSome()): a else: b
|
||||
|
||||
template findIt*(s, pred: untyped): untyped =
|
||||
## Returns the index of the first object matching a predicate, or -1 if no
|
||||
## object matches it.
|
||||
runnableExamples:
|
||||
type MyType = object
|
||||
att: int
|
||||
|
||||
var s = @[MyType(att: 1), MyType(att: 2), MyType(att: 3)]
|
||||
doAssert s.findIt(it.att == 2) == 1
|
||||
doAssert s.findIt(it.att == 4) == -1
|
||||
|
||||
var index = -1
|
||||
for i, it {.inject.} in enumerate(items(s)):
|
||||
if pred:
|
||||
index = i
|
||||
break
|
||||
index
|
||||
|
||||
when not declared(parseDuration): # Odd code formatting to minimize diff v. mainLine
|
||||
const Whitespace = {' ', '\t', '\v', '\r', '\l', '\f'}
|
||||
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
import std/options
|
||||
import std/typetraits
|
||||
from pkg/libp2p import
|
||||
Cid, PeerId, SignedPeerRecord, MultiAddress, AddressInfo, init, `$`
|
||||
|
||||
@ -15,8 +15,7 @@ proc `as`*[T](value: T, U: type): ?U =
|
||||
# In that case, we do not need to do anything, just return the value as it is.
|
||||
when value is Option[U]:
|
||||
return value
|
||||
|
||||
when value is U:
|
||||
elif value is U:
|
||||
return some value
|
||||
elif value is ref object:
|
||||
if value of U:
|
||||
|
||||
@ -1,31 +1,13 @@
|
||||
import pkg/storage/streams/storestream
|
||||
import pkg/unittest2
|
||||
|
||||
# From lip2p/tests/helpers
|
||||
const trackerNames = [StoreStreamTrackerName]
|
||||
|
||||
iterator testTrackers*(extras: openArray[string] = []): TrackerBase =
|
||||
for name in trackerNames:
|
||||
let t = getTracker(name)
|
||||
if not isNil(t):
|
||||
yield t
|
||||
for name in extras:
|
||||
let t = getTracker(name)
|
||||
if not isNil(t):
|
||||
yield t
|
||||
|
||||
proc checkTracker*(name: string) =
|
||||
var tracker = getTracker(name)
|
||||
if tracker.isLeaked():
|
||||
checkpoint tracker.dump()
|
||||
fail()
|
||||
|
||||
proc checkTrackers*() =
|
||||
for tracker in testTrackers():
|
||||
if tracker.isLeaked():
|
||||
checkpoint tracker.dump()
|
||||
for name in trackerNames:
|
||||
let counter = getTrackerCounter(name)
|
||||
if counter.opened != counter.closed:
|
||||
# show how many streams were opened vs closed to help diagnose the leak
|
||||
checkpoint name & ": opened=" & $counter.opened & ", closed=" & $counter.closed
|
||||
fail()
|
||||
try:
|
||||
GC_fullCollect()
|
||||
except:
|
||||
discard
|
||||
GC_fullCollect()
|
||||
|
||||
@ -106,7 +106,7 @@ method restart*(node: StorageProcess) {.async.} =
|
||||
await node.waitUntilStarted()
|
||||
trace "storage process restarted"
|
||||
|
||||
method stop*(node: StorageProcess) {.async: (raises: []).} =
|
||||
method stop*(node: StorageProcess, expectedExitCode: int = 0) {.async: (raises: []).} =
|
||||
logScope:
|
||||
nodeName = node.name
|
||||
|
||||
|
||||
@ -43,7 +43,7 @@ proc lenPrefix*(msg: openArray[byte]): seq[byte] =
|
||||
##
|
||||
|
||||
let vbytes = PB.toBytes(msg.len().uint64)
|
||||
var buf = newSeqUninitialized[byte](msg.len() + vbytes.len)
|
||||
var buf = newSeqUninit[byte](msg.len() + vbytes.len)
|
||||
buf[0 ..< vbytes.len] = vbytes.toOpenArray()
|
||||
buf[vbytes.len ..< buf.len] = msg
|
||||
|
||||
|
||||
@ -20,7 +20,7 @@ proc new*(
|
||||
|
||||
method getBlock*(
|
||||
self: CountingStore, address: BlockAddress
|
||||
): Future[?!Block] {.async.} =
|
||||
): Future[?!Block] {.async: (raises: [CancelledError]).} =
|
||||
self.lookups.mgetOrPut(address.cid, 0).inc
|
||||
await procCall getBlock(NetworkStore(self), address)
|
||||
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
import std/os
|
||||
import std/options
|
||||
import std/math
|
||||
import std/importutils
|
||||
|
||||
|
||||
@ -12,23 +12,31 @@ asyncchecksuite "AsyncStreamWrapper":
|
||||
let data = "0123456789012345678901234567890123456789"
|
||||
let address = initTAddress("127.0.0.1:46001")
|
||||
|
||||
proc serveReadingClient(server: StreamServer, transp: StreamTransport) {.async.} =
|
||||
var wstream = newAsyncStreamWriter(transp)
|
||||
await wstream.write(data)
|
||||
await wstream.finish()
|
||||
await wstream.closeWait()
|
||||
await transp.closeWait()
|
||||
server.stop()
|
||||
server.close()
|
||||
|
||||
proc serveWritingClient(buf: pointer, bufLen: int): auto =
|
||||
return proc(server: StreamServer, transp: StreamTransport) {.async.} =
|
||||
var rstream = newAsyncStreamReader(transp)
|
||||
discard await rstream.readOnce(buf, bufLen)
|
||||
await rstream.closeWait()
|
||||
proc serveReadingClient(
|
||||
server: StreamServer, transp: StreamTransport
|
||||
) {.async: (raises: []).} =
|
||||
try:
|
||||
var wstream = newAsyncStreamWriter(transp)
|
||||
await wstream.write(data)
|
||||
await wstream.finish()
|
||||
await wstream.closeWait()
|
||||
await transp.closeWait()
|
||||
server.stop()
|
||||
server.close()
|
||||
except CatchableError as e:
|
||||
raiseAssert e.msg
|
||||
|
||||
proc serveWritingClient(buf: pointer, bufLen: int): auto =
|
||||
return proc(server: StreamServer, transp: StreamTransport) {.async: (raises: []).} =
|
||||
try:
|
||||
var rstream = newAsyncStreamReader(transp)
|
||||
discard await rstream.readOnce(buf, bufLen)
|
||||
await rstream.closeWait()
|
||||
await transp.closeWait()
|
||||
server.stop()
|
||||
server.close()
|
||||
except CatchableError as e:
|
||||
raiseAssert e.msg
|
||||
|
||||
test "Read all data":
|
||||
var server = createStreamServer(address, serveReadingClient, {ReuseAddr})
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
import pkg/unittest2
|
||||
|
||||
import storage/clock
|
||||
import ./helpers
|
||||
|
||||
suite "Clock":
|
||||
proc testConversion(seconds: SecondsSince1970) =
|
||||
|
||||
@ -2,7 +2,6 @@ import std/times
|
||||
|
||||
import pkg/unittest2
|
||||
import pkg/storage/systemclock
|
||||
import ./helpers
|
||||
|
||||
suite "SystemClock":
|
||||
test "Should get now":
|
||||
|
||||
@ -2,24 +2,6 @@ import pkg/unittest2
|
||||
|
||||
import pkg/storage/utils
|
||||
|
||||
suite "findIt":
|
||||
setup:
|
||||
type AnObject = object
|
||||
attribute1*: int
|
||||
|
||||
var objList = @[
|
||||
AnObject(attribute1: 1),
|
||||
AnObject(attribute1: 3),
|
||||
AnObject(attribute1: 5),
|
||||
AnObject(attribute1: 3),
|
||||
]
|
||||
|
||||
test "should retur index of first object matching predicate":
|
||||
assert objList.findIt(it.attribute1 == 3) == 1
|
||||
|
||||
test "should return -1 when no object matches predicate":
|
||||
assert objList.findIt(it.attribute1 == 15) == -1
|
||||
|
||||
suite "parseDuration":
|
||||
test "should parse durations":
|
||||
var res: Duration # caller must still know if 'b' refers to bytes|bits
|
||||
|
||||
2
vendor/asynctest
vendored
2
vendor/asynctest
vendored
@ -1 +1 @@
|
||||
Subproject commit 73c08f77afc5cc2a5628d00f915b97bf72f70c9b
|
||||
Subproject commit 572c897a4e1177e905105a3bafe8c5573d9bae83
|
||||
2
vendor/logos-storage-nim-dht
vendored
2
vendor/logos-storage-nim-dht
vendored
@ -1 +1 @@
|
||||
Subproject commit 99884b5971759a0da437db3d2e834b92a058527d
|
||||
Subproject commit 67dbc3fe137144f07d6088c44906bf29fc317fae
|
||||
2
vendor/nim-bearssl
vendored
2
vendor/nim-bearssl
vendored
@ -1 +1 @@
|
||||
Subproject commit f08d72203f9e110c099c6f393e1c0640fcbe176f
|
||||
Subproject commit 22c6a76ce015bc07e011562bdcfc51d9446c1e82
|
||||
2
vendor/nim-chronos
vendored
2
vendor/nim-chronos
vendored
@ -1 +1 @@
|
||||
Subproject commit 0646c444fce7c7ed08ef6f2c9a7abfd172ffe655
|
||||
Subproject commit 785fcf4ddec1101a3df1f044d6331504d7ab95c6
|
||||
2
vendor/nim-http-utils
vendored
2
vendor/nim-http-utils
vendored
@ -1 +1 @@
|
||||
Subproject commit c53852d9e24205b6363bba517fa8ee7bde823691
|
||||
Subproject commit f142cb2e8bd812dd002a6493b6082827bb248592
|
||||
2
vendor/nim-libbacktrace
vendored
2
vendor/nim-libbacktrace
vendored
@ -1 +1 @@
|
||||
Subproject commit 99bc2ba16bc2d44f9a97e706304f64744d913d7f
|
||||
Subproject commit ebc972d99769633b9ef3ee766778ee5aa1996499
|
||||
2
vendor/nim-metrics
vendored
2
vendor/nim-metrics
vendored
@ -1 +1 @@
|
||||
Subproject commit 9b9afee96357ad82dabf4563cf292f89b50423df
|
||||
Subproject commit a1296caf3ebb5f30f51a5feae7749a30df2824c2
|
||||
2
vendor/nim-quic
vendored
2
vendor/nim-quic
vendored
@ -1 +1 @@
|
||||
Subproject commit 525842aeca6111fd5035568d0f59aa2b338cc29d
|
||||
Subproject commit 6d8678a159bfb902f9725f0081d542134cd93916
|
||||
2
vendor/nim-secp256k1
vendored
2
vendor/nim-secp256k1
vendored
@ -1 +1 @@
|
||||
Subproject commit f808ed5e7a7bfc42204ec7830f14b7a42b63c284
|
||||
Subproject commit d8f1288b7c72f00be5fc2c5ea72bf5cae1eafb15
|
||||
2
vendor/nim-sqlite3-abi
vendored
2
vendor/nim-sqlite3-abi
vendored
@ -1 +1 @@
|
||||
Subproject commit 6797c31836bff377bf50f1ac7bf8122449bf99ba
|
||||
Subproject commit 8240e8e2819dfce1b67fa2733135d01b5cc80ae0
|
||||
2
vendor/nim-testutils
vendored
2
vendor/nim-testutils
vendored
@ -1 +1 @@
|
||||
Subproject commit e4d37dc1652d5c63afb89907efb5a5e812261797
|
||||
Subproject commit 6ce5e5e2301ccbc04b09d27ff78741ff4d352b4d
|
||||
2
vendor/nim-unittest2
vendored
2
vendor/nim-unittest2
vendored
@ -1 +1 @@
|
||||
Subproject commit 845b6af28b9f68f02d320e03ad18eccccea7ddb9
|
||||
Subproject commit 26f2ef3ae0ec72a2a75bfe557e02e88f6a31c189
|
||||
2
vendor/nimcrypto
vendored
2
vendor/nimcrypto
vendored
@ -1 +1 @@
|
||||
Subproject commit dc07e3058c6904eef965394493b6ea99aa2adefc
|
||||
Subproject commit b3dbc9c4d08e58c5b7bfad6dc7ef2ee52f2f4c08
|
||||
2
vendor/questionable
vendored
2
vendor/questionable
vendored
@ -1 +1 @@
|
||||
Subproject commit 47692e0d923ada8f7f731275b2a87614c0150987
|
||||
Subproject commit 82d90b67bcfb7f2e918b61dace2ff1a4ced60935
|
||||
Loading…
x
Reference in New Issue
Block a user