【讨论】PRB问题讨论帖

我每次重启 lifecycle,怎么出现的错误都不一样1633181454818 - {“name”:“Error”,“message”:"",“stack”:“Error\n at Queue._onMessage (/opt/app/node_modules/.pnpm/[email protected]/node_modules/bee-queue/lib/queue.js:138:22)\n at RedisClient.emit (events.js:400:28)\n at return_pub_sub (/opt/app/node_modules/.pnpm/[email protected]/node_modules/redis/index.js:786:18)\n at RedisClient.return_reply (/opt/app/node_modules/.pnpm/[email protected]/node_modules/redis/index.js:833:9)\n at JavascriptRedisParser.returnReply (/opt/app/node_modules/.pnpm/[email protected]/node_modules/redis/index.js:192:18)\n at JavascriptRedisParser.execute (/opt/app/node_modules/.pnpm/[email protected]/node_modules/redis-parser/lib/parser.js:574:12)\n at Socket. (/opt/app/node_modules/.pnpm/[email protected]/node_modules/redis/index.js:274:27)\n at Socket.emit (events.js:400:28)\n at addChunk (internal/streams/readable.js:290:12)\n at readableAddChunk (internal/streams/readable.js:265:9)”}


想删除worker,删不掉啊

目前的办法,就是通过修改,来换成别的矿机

monitor提示

1633616192732 - {"name":"SyntaxError","message":"Unexpected token I in JSON at position 0","stack":"SyntaxError: Unexpected token I in JSON at position 0\n at JSON.parse (<anonymous>)\n at file:///opt/app/src/lifecycle/pruntime.js:22:24\n at runMicrotasks (<anonymous>)\n at processTicksAndRejections (internal/process/task_queues.js:95:5)\n at async paraBlockSync (file:///opt/app/src/lifecycle/pruntime.js:285:11)\n at async Promise.all (index 1)"}

lifecycle启动后,挂了,提示如下错误:

events.js:377
      throw er; // Unhandled 'error' event
      ^

RequestError: write EPIPE
    at ClientRequest.<anonymous> (/opt/app/node_modules/.pnpm/[email protected]/node_modules/got/dist/source/core/index.js:956:111)
    at Object.onceWrapper (events.js:520:26)
    at ClientRequest.emit (events.js:412:35)
    at ClientRequest.origin.emit (/opt/app/node_modules/.pnpm/@[email protected]/node_modules/@szmarczak/http-timer/dist/source/index.js:43:20)
    at Socket.socketErrorListener (_http_client.js:475:9)
    at Socket.emit (events.js:412:35)
    at emitErrorNT (internal/streams/destroy.js:106:8)
    at emitErrorCloseNT (internal/streams/destroy.js:74:3)
    at processTicksAndRejections (internal/process/task_queues.js:82:21)
    at WriteWrap.onWriteComplete [as oncomplete] (internal/stream_base_commons.js:94:16)
Emitted 'error' event on Request instance at:
    at emitErrorNT (internal/streams/destroy.js:106:8)
    at emitErrorCloseNT (internal/streams/destroy.js:74:3)
    at processTicksAndRejections (internal/process/task_queues.js:82:21) {
  code: 'EPIPE',
  timings: {
    start: 1633522856113,
    socket: 1633522856113,
    lookup: 1633522857116,
    connect: 1633522857116,
    secureConnect: undefined,
    upload: 1633522872125,
    response: 1633522872124,
    end: undefined,
    error: 1633522872125,
    abort: undefined,
    phases: {
      wait: 0,
      dns: 1003,
      tcp: 0,
      tls: undefined,
      request: 15009,
      firstByte: NaN,
      download: undefined,
      total: 16012
    }
  }
}
 ELIFECYCLE  Command failed with exit code 1.

pruntime 提示{“name”:”TimeoutError”,”code”:”ETIMEDOUT”,”timings”}

1633436893663 - {“name”:“TimeoutError”,“code”:“ETIMEDOUT”,“timings”:{“start”:1633436863663,“socket”:1633436863663,“lookup”:1633436863664,“connect”:1633436863664,“error”:1633436893663,“phases”:{“wait”:0,“dns”:1,“tcp”:0,“total”:30000}},“event”:“request”,“message”:“Timeout awaiting ‘request’ for 30000ms”,“stack”:“RequestError: Timeout awaiting ‘request’ for 30000ms\n at ClientRequest. (/opt/app/node_modules/.pnpm/[email protected]/node_modules/got/dist/source/core/index.js:956:65)\n at Object.onceWrapper (events.js:520:26)\n at ClientRequest.emit (events.js:412:35)\n at ClientRequest.origin.emit (/opt/app/node_modules/.pnpm/@[email protected]/node_modules/@szmarczak/http-timer/dist/source/index.js:43:20)\n at Socket.socketErrorListener (_http_client.js:475:9)\n at Socket.emit (events.js:412:35)\n at emitErrorNT (internal/streams/destroy.js:106:8)\n at emitErrorCloseNT (internal/streams/destroy.js:74:3)\n at processTicksAndRejections (internal/process/task_queues.js:82:21)\n at Timeout.timeoutHandler [as _onTimeout] (/opt/app/node_modules/.pnpm/[email protected]/node_modules/got/dist/source/core/utils/timed-out.js:36:25)\n at listOnTimeout (internal/timers.js:559:11)\n at processTimers (internal/timers.js:500:7)”}

pruntime设置超时时间

version: "3"
services:
  pruntime:
    image: phalanetwork/phala-pruntime
    container_name: pruntime
    restart: always
    hostname: pruntime
    environment:
      - "ENABLE_KICK_API=1"
      - ROCKET_KEEP_ALIVE=300
      - ROCKET_READ_TIMEOUT=300
      - ROCKET_WRITE_TIMEOUT=300
    volumes:
      - "./data:/root/data"
    devices:
      - "/dev/sgx/enclave:/dev/sgx/enclave"
      - "/dev/sgx/provision:/dev/sgx/provision"
    ports:
      - "8000:8000"

你测试过了,修改超时时间,可以修复这个问题吗,我的prb还在同步高度

设置了5分钟,5分钟后一样的提示超时。
挂的机器单独跑,机器非常卡。

你是在大概多少高度出现的超时,我在测试prb了

同步完了 启用矿机的时候

我出现timeout是在9w-10w高度的时候,全部出现timeouterr,暂时还没找到方法
另外,BlockNumberMismatch这个报错,我清理了所有prb的数据<谨慎处理,prb会重新同步,也要不少时间>,还在验证中…

同步完了再加矿机
BlockNumberMismatch,重启lifecycle

重启过,添加的worker到达一定高度后,依然出现这个BlockNumberMismatch,并且高度卡住不动

prb不再使用gas账号,而是直接使用pool账号,共同使用pool地址,建议在添加worker时,每台设置那个stake Amount为10个pha,默认是>1个pha,建议复制完整,包括后面的0,这个就是用来作gas费的范围

Thanks

验证了,prb全新同步完了,再加矿机,依然会有BlockNumberMismatch和TimeoutError,同样也是卡在9w-10w多的高度

呼叫官方爸爸

还在进一步验证中


有一台ok

我一共100多台,有10多台能正常到mining,其余全是timeoutError和BlockNumberMismatch