-
-
Notifications
You must be signed in to change notification settings - Fork 287
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(beacon-node): cleanly exit process on graceful shutdown #5330
Conversation
This comment was marked as outdated.
This comment was marked as outdated.
fa70880
to
6b7fd39
Compare
6b7fd39
to
f4006e7
Compare
Performance Report✔️ no performance regression detected Full benchmark results
|
cd80dbe
to
4f18664
Compare
await this.chain.persistToDisk(); | ||
await this.chain.close(); | ||
await this.db.stop(); | ||
if (this.controller) this.controller.abort(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Abort must be called before closing db
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In general, it is best to abort as late as possible in shutdown sequence. This ensures all intervals/timeouts are cleared first and then all remaining pending operations are aborted. Prevents edge case where abort is done and interval schedules another operation which would be stuck pending and delay shutdown.
674b94f
to
42a3d70
Compare
@@ -74,6 +75,12 @@ enum LoggerModule { | |||
sync = "sync", | |||
} | |||
|
|||
/** | |||
* Short delay before closing db to give async operations sufficient time to complete | |||
* and prevent "Database is not open" errors when shutting down beacon node. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As per documentation, "Database is not open" only happens if close is already called and some async operation still tries to execute db queries. If db query is already executed before, the database will wait for any pending operations to finish before closing.
(process is cleanly exited now)
(after further testing 500ms seems sufficient)
95a5e71
to
32983cd
Compare
🎉 This PR is included in v1.9.0 🎉 |
Motivation
Cleanly exit beacon node on graceful shutdown without requiring
process.exit
, closes #5317Description
Uses why-is-node-running to identify active handles. (alternativ tool: wtfnode)
Most of the time process exits but there are errors such asError: QUEUE_ERROR_QUEUE_ABORTED
.In some cases the process keeps running, I guess depends on the timing...good news is that workers are all closed correctly
why-is-node-running output
There are 1411 handle(s) keeping the process running
TTYWRAP
node:internal/async_hooks:202
node:internal/bootstrap/switches/is_main_thread:51
node:internal/bootstrap/switches/is_main_thread:170
/home/nico/projects/ethereum/lodestar/node_modules/siginfo/index.js:3 - if (process.stderr.isTTY || force === true) {
/home/nico/projects/ethereum/lodestar/node_modules/why-is-node-running/include.js:3 - require('siginfo')(why, true)
node:internal/modules/cjs/loader:1159
node:internal/modules/cjs/loader:1213
node:internal/modules/cjs/loader:1037
FILEHANDLE
node:internal/async_hooks:202
FILEHANDLE
node:internal/async_hooks:202
FILEHANDLE
node:internal/async_hooks:202
... more node:internal/async_hooks:202
TTYWRAP
node:internal/async_hooks:202
node:internal/bootstrap/switches/is_main_thread:51
node:internal/bootstrap/switches/is_main_thread:148
node:internal/bootstrap/loaders:189
node:internal/bootstrap/loaders:311
node:internal/bootstrap/loaders:291
node:internal/bootstrap/loaders:296
TTYWRAP
node:internal/async_hooks:202
node:internal/bootstrap/switches/is_main_thread:196
node:internal/bootstrap/loaders:189
node:internal/bootstrap/loaders:311
node:internal/bootstrap/loaders:291
node:internal/bootstrap/loaders:296
node:internal/bootstrap/loaders:276
DNSCHANNEL
node:internal/async_hooks:202
node:internal/dns/utils:79
node:internal/dns/utils:74
node:internal/dns/utils:241
node:internal/dns/utils:251
node:internal/dns/promises:367
node:internal/bootstrap/loaders:331
node:internal/bootstrap/loaders:362
node:dns/promises:3
JSSTREAM
node:internal/async_hooks:202
node:internal/js_stream_socket:49
/home/nico/projects/ethereum/lodestar/node_modules/http2-wrapper/source/utils/js-stream-socket.js:6 - const JSStreamSocket = (new tls.TLSSocket(new stream.PassThrough()))._handle._parentWrap.constructor;
node:internal/modules/cjs/loader:1159
node:internal/modules/cjs/loader:1213
node:internal/modules/cjs/loader:1037
node:internal/modules/cjs/loader:878
node:internal/modules/cjs/loader:1061
TLSWRAP
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/http2-wrapper/source/utils/js-stream-socket.js:6 - const JSStreamSocket = (new tls.TLSSocket(new stream.PassThrough()))._handle._parentWrap.constructor;
node:internal/modules/cjs/loader:1159
node:internal/modules/cjs/loader:1213
node:internal/modules/cjs/loader:1037
node:internal/modules/cjs/loader:878
node:internal/modules/cjs/loader:1061
FILEHANDLE
node:internal/async_hooks:202
FILEHANDLE
node:internal/async_hooks:202
FILEHANDLE
node:internal/async_hooks:202
FILEHANDLE
node:internal/async_hooks:202
... more node:internal/async_hooks:202
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/got/node_modules/decompress-response/index.js:43 - const decompressStream = isBrotli ? zlib.createBrotliDecompress() : zlib.createUnzip();
file:///home/nico/projects/ethereum/lodestar/node_modules/got/dist/source/core/index.js:549
file:///home/nico/projects/ethereum/lodestar/node_modules/got/dist/source/core/index.js:736
file:///home/nico/projects/ethereum/lodestar/node_modules/got/dist/source/core/index.js:754
nan:test.DelayRequest
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/gc-stats/index.js:17 - gcstats.afterGC(function(stats) {
/home/nico/projects/ethereum/lodestar/node_modules/prometheus-gc-stats/index.js:58 - gc().on('stats', stats => {
file:///home/nico/projects/ethereum/lodestar/packages/beacon-node/lib/metrics/nodeJsMetrics.js:14
file:///home/nico/projects/ethereum/lodestar/packages/beacon-node/lib/metrics/metrics.js:21
file:///home/nico/projects/ethereum/lodestar/packages/beacon-node/lib/node/nodejs.js:81
node:internal/process/task_queues:95
file:///home/nico/projects/ethereum/lodestar/packages/cli/lib/cmds/beacon/handler.js:52
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
Timeout
node:internal/async_hooks:202
node:internal/async_hooks:505
node:internal/timers:159
node:internal/timers:193
file:///home/nico/projects/ethereum/lodestar/packages/beacon-node/lib/chain/clock/LocalClock.js:23
node:internal/timers:564
node:internal/timers:507
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
However, it is much better than on
unstable
branch which never exitswhy-is-node-running output on unstable
There are 1436 handle(s) keeping the process running
TTYWRAP
node:internal/async_hooks:202
node:internal/bootstrap/switches/is_main_thread:51
node:internal/bootstrap/switches/is_main_thread:170
/home/nico/projects/ethereum/lodestar/node_modules/siginfo/index.js:3 - if (process.stderr.isTTY || force === true) {
/home/nico/projects/ethereum/lodestar/node_modules/why-is-node-running/include.js:3 - require('siginfo')(why, true)
node:internal/modules/cjs/loader:1159
node:internal/modules/cjs/loader:1213
node:internal/modules/cjs/loader:1037
FILEHANDLE
node:internal/async_hooks:202
FILEHANDLE
node:internal/async_hooks:202
FILEHANDLE
node:internal/async_hooks:202
FILEHANDLE
node:internal/async_hooks:202
....more node:internal/async_hooks:202
TTYWRAP
node:internal/async_hooks:202
node:internal/bootstrap/switches/is_main_thread:51
node:internal/bootstrap/switches/is_main_thread:148
node:internal/bootstrap/loaders:189
node:internal/bootstrap/loaders:311
node:internal/bootstrap/loaders:291
node:internal/bootstrap/loaders:296
TTYWRAP
node:internal/async_hooks:202
node:internal/bootstrap/switches/is_main_thread:196
node:internal/bootstrap/loaders:189
node:internal/bootstrap/loaders:311
node:internal/bootstrap/loaders:291
node:internal/bootstrap/loaders:296
node:internal/bootstrap/loaders:276
DNSCHANNEL
node:internal/async_hooks:202
node:internal/dns/utils:79
node:internal/dns/utils:74
node:internal/dns/utils:241
node:internal/dns/utils:251
node:internal/dns/promises:367
node:internal/bootstrap/loaders:331
node:internal/bootstrap/loaders:362
node:dns/promises:3
JSSTREAM
node:internal/async_hooks:202
node:internal/js_stream_socket:49
/home/nico/projects/ethereum/lodestar/node_modules/http2-wrapper/source/utils/js-stream-socket.js:6 - const JSStreamSocket = (new tls.TLSSocket(new stream.PassThrough()))._handle._parentWrap.constructor;
node:internal/modules/cjs/loader:1159
node:internal/modules/cjs/loader:1213
node:internal/modules/cjs/loader:1037
node:internal/modules/cjs/loader:878
node:internal/modules/cjs/loader:1061
TLSWRAP
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/http2-wrapper/source/utils/js-stream-socket.js:6 - const JSStreamSocket = (new tls.TLSSocket(new stream.PassThrough()))._handle._parentWrap.constructor;
node:internal/modules/cjs/loader:1159
node:internal/modules/cjs/loader:1213
node:internal/modules/cjs/loader:1037
node:internal/modules/cjs/loader:878
node:internal/modules/cjs/loader:1061
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/got/node_modules/decompress-response/index.js:43 - const decompressStream = isBrotli ? zlib.createBrotliDecompress() : zlib.createUnzip();
file:///home/nico/projects/ethereum/lodestar/node_modules/got/dist/source/core/index.js:549
file:///home/nico/projects/ethereum/lodestar/node_modules/got/dist/source/core/index.js:736
file:///home/nico/projects/ethereum/lodestar/node_modules/got/dist/source/core/index.js:754
nan:test.DelayRequest
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/gc-stats/index.js:17 - gcstats.afterGC(function(stats) {
/home/nico/projects/ethereum/lodestar/node_modules/prometheus-gc-stats/index.js:58 - gc().on('stats', stats => {
file:///home/nico/projects/ethereum/lodestar/packages/beacon-node/lib/metrics/nodeJsMetrics.js:14
file:///home/nico/projects/ethereum/lodestar/packages/beacon-node/lib/metrics/metrics.js:21
file:///home/nico/projects/ethereum/lodestar/packages/beacon-node/lib/node/nodejs.js:81
node:internal/process/task_queues:95
file:///home/nico/projects/ethereum/lodestar/packages/cli/lib/cmds/beacon/handler.js:52
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
Timeout
node:internal/async_hooks:202
node:internal/async_hooks:505
node:internal/timers:159
node:internal/timers:193
file:///home/nico/projects/ethereum/lodestar/packages/reqresp/lib/rate_limiter/ReqRespRateLimiter.js:59
file:///home/nico/projects/ethereum/lodestar/packages/reqresp/lib/ReqResp.js:70
file:///home/nico/projects/ethereum/lodestar/packages/beacon-node/lib/network/reqresp/ReqRespBeaconNode.js:46
file:///home/nico/projects/ethereum/lodestar/packages/beacon-node/lib/network/network.js:231
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
ZLIB
node:internal/async_hooks:202
/home/nico/projects/ethereum/lodestar/node_modules/node-fetch/lib/index.js:1622 - body = body.pipe(zlib.createGunzip(zlibOptions));
Timeout
node:internal/async_hooks:202
node:internal/async_hooks:505
node:internal/timers:159
node:internal/timers:193
file:///home/nico/projects/ethereum/lodestar/packages/beacon-node/lib/chain/clock/LocalClock.js:23
file:///home/nico/projects/ethereum/lodestar/packages/beacon-node/lib/chain/clock/LocalClock.js:37
file:///home/nico/projects/ethereum/lodestar/packages/beacon-node/lib/chain/clock/LocalClock.js:51
file:///home/nico/projects/ethereum/lodestar/packages/beacon-node/lib/network/network.js:328
How to use this branch
yarn install && yarn build
Ctrl +C to send SIGINT to process
Trigger why-is-node-running logs from another shell (see instructions)
Next steps
Error: QUEUE_ERROR_QUEUE_ABORTED
and other errorsEth1DepositDataTracker
process.exit
just to make sure...but lets clean up firstCleanup