eosrio / hyperion-sequential-reader

MIT License
2 stars 1 forks source link

Cannot read properties of undefined at telos mainnet #1365289 #9

Closed guilledk closed 11 months ago

guilledk commented 12 months ago

Currently if started from block #1365289 we crash with the following exception:

node:internal/event_target:1033
  process.nextTick(() => { throw err; });
                           ^

TypeError: Cannot read properties of undefined (reading 'blockInfo')
    at HyperionSequentialReader.collectDelta (file:///home/guille/full-history-node-mainnet/telosevm-translator/node_modules/@eosrio/hyperion-sequential-reader/lib/esm/reader.js:512:31)
    at HyperionSequentialReader.handleWorkerMessage (file:///home/guille/full-history-node-mainnet/telosevm-translator/node_modules/@eosrio/hyperion-sequential-reader/lib/esm/reader.js:457:22)
    at Worker.<anonymous> (file:///home/guille/full-history-node-mainnet/telosevm-translator/node_modules/@eosrio/hyperion-sequential-reader/lib/esm/reader.js:437:22)
    at Worker.emit (node:events:517:28)
    at MessagePort.<anonymous> (node:internal/worker:243:53)
    at [nodejs.internal.kHybridDispatch] (node:internal/event_target:757:20)
    at exports.emitMessage (node:internal/per_context/messageport:23:28)
guilledk commented 12 months ago

Block info:

{
  "timestamp": "2018-12-21T17:00:03.000",
  "producer": "blindblocart",
  "confirmed": 0,
  "previous": "0014d528d0e56853bc86d313807dfe5fea33240adc3735667f8d378dc1be8dbd",
  "transaction_mroot": "ed11e999aa8583f4e7bb19587ca6b5b8932161dde36b86096390c12d5aa210fb",
  "action_mroot": "5df64537dddb180bee026e8a038be43f50f11f49771ab8df2d61502031b093c2",
  "schedule_version": 20,
  "new_producers": null,
  "producer_signature": "SIG_K1_KjcBr7YGXHHBmTidGv8xVHsbvgdtTYozead1VoqxYos9xEJa6jC971kqd2ECsZPN7SHPfMr3jwNMppLwYURqNrh89QPof1",
  "transactions": [
    {
      "status": "hard_fail",
      "cpu_usage_us": 260,
      "net_usage_words": 0,
      "trx": "5c7ba03c6544f4a86a0a0e18982155ab6420f923e622eb35fc65d614583a8b1f"
    }
  ],
  "id": "0014d529bda71a556537d12b38b6443b1e613cc23c7e867b700195fc875e18a6",
  "block_num": 1365289,
  "ref_block_prefix": 735131493
}

A v1 history query for the hard_fail tx returns not found:

{
  "code": 500,
  "message": "Internal Service Error",
  "error": {
    "code": 3040011,
    "name": "tx_not_found",
    "what": "The transaction can not be found",
    "details": [
      {
        "message": "Transaction 5c7ba03c6544f4a86a0a0e18982155ab6420f923e622eb35fc65d614583a8b1f not found in history and no block hint was given",
        "file": "",
        "line_number": 1,
        "method": "get_transaction"
      }
    ]
  },
  "query_time_ms": 130.411
}

As kevin mentioned:

Kevin Heifner, [11/16/23 12:18 PM] v1 history does not store hard_fail trxs

Kevin Heifner, [11/16/23 12:18 PM] hard_fail means neither the trx nor the onerror executed so there are no side-affects to state.

So we can probably just safely ignore blocks like this, error was on collectDelta function so must add some logic to ignore.