truffle icon indicating copy to clipboard operation
truffle copied to clipboard

Deployment crashes with ETIMEDOUT

Open Bobface opened this issue 3 years ago • 31 comments

Issue

Deployment crashes because of ETIMEDOUT when requesting the latest block using Infura as provider with a stable internet connection. This deployment was to Kovan but I suspect it would also happen when deploying to mainnet.

2_deploy_timelock.js
====================

   Replacing 'DSPause'
   -------------------
   > transaction hash:    0x00e68e105052798ca01866ef6d10e3bcba07ac9b6e89ec41e7ed3e94f5259b20
   ⠼ Blocks: 4            Seconds: 23
C:\Users\User\Desktop\contracts\node_modules\request\request.js:848
          var e = new Error('ETIMEDOUT')
                  ^
Error: PollingBlockTracker - encountered an error while attempting to update latest block:
Error: ETIMEDOUT
    at Timeout.<anonymous> (C:\Users\User\Desktop\contracts\node_modules\request\request.js:848:19)
    at listOnTimeout (internal/timers.js:554:17)
    at processTimers (internal/timers.js:497:7)
    at PollingBlockTracker._performSync (C:\Users\User\Desktop\contracts\node_modules\eth-block-tracker\src\polling.js:51:24)
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (internal/process/task_queues.js:97:5)

The same error also appears with a different message:

   -----------------------------------
   > transaction hash:    0xfb8adea09261fae8fe28b13b2f0a1c71dff8b766905b905de37baadedea1958a
   ⠴ Blocks: 0            Seconds: 0Error [ERR_UNHANDLED_ERROR]: Unhandled error. ({
  code: -32603,
  message: 'ETIMEDOUT',
  data: { originalError: { code: 'ETIMEDOUT', connect: true } },
  stack: 'Error: ETIMEDOUT\n' +
    '    at Timeout.<anonymous> (C:\\Users\\User\\Desktop\\contracts\\node_modules\\request\\request.js:848:19)\n' +
    '    at listOnTimeout (internal/timers.js:554:17)\n' +
    '    at processTimers (internal/timers.js:497:7)'
})
    at Web3ProviderEngine.emit (events.js:303:17)
    at C:\Users\User\Desktop\contracts\node_modules\@trufflesuite\web3-provider-engine\index.js:57:14
    at afterRequest (C:\Users\User\Desktop\contracts\node_modules\@trufflesuite\web3-provider-engine\index.js:151:21)
    at C:\Users\User\Desktop\contracts\node_modules\@trufflesuite\web3-provider-engine\index.js:176:21
    at C:\Users\User\Desktop\contracts\node_modules\@trufflesuite\web3-provider-engine\index.js:238:9
    at C:\Users\User\Desktop\contracts\node_modules\@trufflesuite\web3-provider-engine\node_modules\async\internal\once.js:12:16
    at replenish (C:\Users\User\Desktop\contracts\node_modules\@trufflesuite\web3-provider-engine\node_modules\async\internal\eachOfLimit.js:61:25)
    at C:\Users\User\Desktop\contracts\node_modules\@trufflesuite\web3-provider-engine\node_modules\async\internal\eachOfLimit.js:71:9
    at eachLimit (C:\Users\User\Desktop\contracts\node_modules\@trufflesuite\web3-provider-engine\node_modules\async\eachLimit.js:43:36)
    at C:\Users\User\Desktop\contracts\node_modules\@trufflesuite\web3-provider-engine\node_modules\async\internal\doLimit.js:9:16
    at end (C:\Users\User\Desktop\contracts\node_modules\@trufflesuite\web3-provider-engine\index.js:217:5)
    at Request._callback (C:\Users\User\Desktop\contracts\node_modules\@trufflesuite\web3-provider-engine\subproviders\rpc.js:36:21)
    at self.callback (C:\Users\User\Desktop\contracts\node_modules\request\request.js:185:22)
    at Request.emit (events.js:314:20)
    at Timeout.<anonymous> (C:\Users\User\Desktop\contracts\node_modules\request\request.js:851:16)
    at listOnTimeout (internal/timers.js:554:17)
    at processTimers (internal/timers.js:497:7)

Steps to Reproduce

Hard to reproduce, does not happen everytime.

Expected Behavior

Do not crash the deployment but instead retry to fetch the latest block while printing a warning.

Environment

  • Operating System: Windows 10
  • Truffle version (truffle version): Truffle v5.1.50 (core: 5.1.50)
  • node version (node --version): v12.19.0
  • npm version (npm --version): 6.14.8

Bobface avatar Oct 24 '20 11:10 Bobface