From d5609d2174ac86beeff2a5f081beb705d1b8e57e Mon Sep 17 00:00:00 2001 From: dapplion <35266934+dapplion@users.noreply.github.com> Date: Mon, 25 Jul 2022 16:23:19 +0200 Subject: [PATCH 1/4] Bump @node/types --- package.json | 2 +- yarn.lock | 13 +++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 82615778a940..4712465c87b7 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "@types/chai": "4.2.0", "@types/chai-as-promised": "^7.1.2", "@types/mocha": "^8.0.3", - "@types/node": "^14.14.17", + "@types/node": "^18.6.1", "@types/sinon": "^9.0.0", "@typescript-eslint/eslint-plugin": "5.26.0", "@typescript-eslint/parser": "5.26.0", diff --git a/yarn.lock b/yarn.lock index 7d8558f537a0..320c78b1f8ba 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2573,9 +2573,9 @@ integrity sha512-fZQQafSREFyuZcdWFAExYjBiCL7AUCdgsk80iO0q4yihYYdcIiH28CcuPTGFgLOCC8RlW49GSQxdHwZP+I7CNg== "@types/minipass@*": - version "2.2.0" - resolved "https://registry.npmjs.org/@types/minipass/-/minipass-2.2.0.tgz" - integrity sha512-wuzZksN4w4kyfoOv/dlpov4NOunwutLA/q7uc00xU02ZyUY+aoM5PWIXEKBMnm0NHd4a+N71BMjq+x7+2Af1fg== + version "3.1.2" + resolved "https://registry.yarnpkg.com/@types/minipass/-/minipass-3.1.2.tgz#e2d7f9df0698aff421dcf145b4fc05b8183b9030" + integrity sha512-foLGjgrJkUjLG/o2t2ymlZGEoBNBa/TfoUZ7oCTkOjP1T43UGBJspovJou/l3ZuHvye2ewR5cZNtp2zyWgILMA== dependencies: "@types/node" "*" @@ -2602,7 +2602,7 @@ "@types/node" "*" form-data "^3.0.0" -"@types/node@*", "@types/node@^14.14.17": +"@types/node@*": version "14.14.43" resolved "https://registry.npmjs.org/@types/node/-/node-14.14.43.tgz" integrity sha512-3pwDJjp1PWacPTpH0LcfhgjvurQvrZFBrC6xxjaUEZ7ifUtT32jtjPxEMMblpqd2Mvx+k8haqQJLQxolyGN/cQ== @@ -2617,6 +2617,11 @@ resolved "https://registry.npmjs.org/@types/node/-/node-16.6.2.tgz" integrity sha512-LSw8TZt12ZudbpHc6EkIyDM3nHVWKYrAvGy6EAJfNfjusbwnThqjqxUKKRwuV3iWYeW/LYMzNgaq3MaLffQ2xA== +"@types/node@^18.6.1": + version "18.6.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.6.1.tgz#828e4785ccca13f44e2fb6852ae0ef11e3e20ba5" + integrity sha512-z+2vB6yDt1fNwKOeGbckpmirO+VBDuQqecXkgeIqDlaOtmKn6hPR/viQ8cxCfqLU4fTlvM3+YjM367TukWdxpg== + "@types/normalize-package-data@^2.4.0": version "2.4.0" resolved "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz" From e94abc33142f9ac4428f8bb8ded786c804a3a9c7 Mon Sep 17 00:00:00 2001 From: dapplion <35266934+dapplion@users.noreply.github.com> Date: Mon, 25 Jul 2022 16:23:27 +0200 Subject: [PATCH 2/4] Sort dependencies --- packages/beacon-node/package.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/beacon-node/package.json b/packages/beacon-node/package.json index 346cd1317418..dea95cf662a7 100644 --- a/packages/beacon-node/package.json +++ b/packages/beacon-node/package.json @@ -103,21 +103,21 @@ "@chainsafe/bls": "7.1.1", "@chainsafe/discv5": "^0.7.1", "@chainsafe/libp2p-noise": "5.0.3", + "@chainsafe/persistent-merkle-tree": "^0.4.2", + "@chainsafe/snappy-stream": "5.1.1", + "@chainsafe/ssz": "^0.9.2", + "@chainsafe/threads": "^1.10.0", + "@ethersproject/abi": "^5.0.0", "@lodestar/api": "^0.39.0", - "@lodestar/state-transition": "^0.39.0", "@lodestar/config": "^0.39.0", "@lodestar/db": "^0.39.0", "@lodestar/fork-choice": "^0.39.0", "@lodestar/light-client": "^0.39.0", "@lodestar/params": "^0.39.0", + "@lodestar/state-transition": "^0.39.0", "@lodestar/types": "^0.39.0", "@lodestar/utils": "^0.39.0", "@lodestar/validator": "^0.39.0", - "@chainsafe/persistent-merkle-tree": "^0.4.2", - "@chainsafe/snappy-stream": "5.1.1", - "@chainsafe/ssz": "^0.9.2", - "@chainsafe/threads": "^1.10.0", - "@ethersproject/abi": "^5.0.0", "@types/datastore-level": "^3.0.0", "bl": "^5.0.0", "buffer-xor": "^2.0.2", From 3050c4a98e1e858665d22517c01c11b0bb2c5b30 Mon Sep 17 00:00:00 2001 From: dapplion <35266934+dapplion@users.noreply.github.com> Date: Mon, 25 Jul 2022 16:25:55 +0200 Subject: [PATCH 3/4] Use NodeJS.Timeout type --- packages/beacon-node/src/chain/clock/LocalClock.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/beacon-node/src/chain/clock/LocalClock.ts b/packages/beacon-node/src/chain/clock/LocalClock.ts index da4fa6bd5661..79142eaad99f 100644 --- a/packages/beacon-node/src/chain/clock/LocalClock.ts +++ b/packages/beacon-node/src/chain/clock/LocalClock.ts @@ -14,7 +14,7 @@ import {IBeaconClock} from "./interface.js"; export class LocalClock implements IBeaconClock { private readonly config: IChainForkConfig; private readonly genesisTime: number; - private timeoutId: number; + private timeoutId: NodeJS.Timeout; private readonly emitter: ChainEventEmitter; private readonly signal: AbortSignal; private _currentSlot: number; From 31b2aa91b83c56b1fa1f78a9497d3ff9c4b53345 Mon Sep 17 00:00:00 2001 From: dapplion <35266934+dapplion@users.noreply.github.com> Date: Mon, 25 Jul 2022 18:01:17 +0200 Subject: [PATCH 4/4] Guard against global.gc undefined --- .../test/memory/testRunnerMemory.ts | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/packages/beacon-node/test/memory/testRunnerMemory.ts b/packages/beacon-node/test/memory/testRunnerMemory.ts index 527546b1654b..8fb6f3e71773 100644 --- a/packages/beacon-node/test/memory/testRunnerMemory.ts +++ b/packages/beacon-node/test/memory/testRunnerMemory.ts @@ -8,6 +8,10 @@ export type TestRunnerMemoryOpts = { convergeFactor?: number; }; +if (global.gc === undefined) { + throw Error("Must enable global.gc"); +} + export async function testRunnerMemoryGc(opts: TestRunnerMemoryOpts): Promise { const { getInstance, @@ -25,11 +29,11 @@ export async function testRunnerMemoryGc(opts: TestRunnerMemoryOpts): Prom const usedMemoryArr: number[] = []; for (let n = 0; n < rounds; n++) { - global.gc(); - global.gc(); + global.gc?.(); + global.gc?.(); await new Promise((r) => setTimeout(r, 100)); - global.gc(); - global.gc(); + global.gc?.(); + global.gc?.(); const totalUsedMemoryPrev = computeUsedMemory(process.memoryUsage()); @@ -38,11 +42,11 @@ export async function testRunnerMemoryGc(opts: TestRunnerMemoryOpts): Prom refs.push(getInstance(i)); } - global.gc(); - global.gc(); + global.gc?.(); + global.gc?.(); await new Promise((r) => setTimeout(r, 100)); - global.gc(); - global.gc(); + global.gc?.(); + global.gc?.(); const totalUsedMemory = computeUsedMemory(process.memoryUsage()); @@ -98,8 +102,8 @@ export function testRunnerMemory(opts: TestRunnerMemoryOpts): number { // local vars will get garbage collected and won't show up in the .m result if (i % sampleEvery === 0) { - global.gc(); - global.gc(); + global.gc?.(); + global.gc?.(); const memoryUsage = process.memoryUsage(); const usedMemory = computeUsedMemory(memoryUsage);