Skip to content

Empty block delivery crashes application #388

@LaurentMontBlanc

Description

@LaurentMontBlanc

Steps to reproduce:

Tendermint:
tendermint unsafe_reset_all
tendermint node

Planetmint:
planetmint -y drop
planetmint init
planetmint -l debug start

TS driver:
npm run test

Caveat: sometimes this only fails on the second and following test runs

[2023-04-20 09:33:25] [DEBUG] (planetmint.abci.application_logic) BEGIN BLOCK, height:2 (MainProcess - pid: 39278)
[2023-04-20 09:33:25] [DEBUG] (planetmint.abci.application_logic) deliver_tx: b'{"id": "b0f482d9c2649fcab1c7922ed3e6ec256cf77994e7a7e3956db4c915297efe23", "operation": "CREATE", "outputs": [{"condition": {"details": {"type": "ed25519-sha-256", "public_key": "HYnhghEcMQZPETq6pLqx1FQrkQLg9NqzzWKBnTTkJqGL"}, "uri": "ni:///sha-256;AT0BWNHVdi-69iIGFJZ-hREIwUxy2HOri-gYTNrsEWQ?fpt=ed25519-sha-256&cost=131072"}, "amount": "1", "public_keys": ["HYnhghEcMQZPETq6pLqx1FQrkQLg9NqzzWKBnTTkJqGL"]}], "inputs": [{"fulfillment": "pGSAIPXfq7Mp0WPQrBoSVYq8IA2fyw_lNElwGh119CMQfJ_RgUBJeCrn7CwisnnisKfFzhAXjHObYuEj3JyTVj9MEvhq9mvKxJ0Dl8xjXb3FaQGBax6LGeG6_xMW8hlBv1Q3MTkK", "fulfills": null, "owners_before": ["HYnhghEcMQZPETq6pLqx1FQrkQLg9NqzzWKBnTTkJqGL"]}], "metadata": "bagaaiera5r325lbynbzbhydggnsk4fj7gjv7lc6mfvksbabyiyxhonkzuaxq", "assets": [{"data": "bagaaiera434swo2rvjynsc567ms3mpa6ztgehvqg3oqymt6b5axil7t2ym5q"}], "version": "3.0"}' (MainProcess - pid: 39278)
[2023-04-20 09:33:25] [DEBUG] (planetmint.abci.application_logic) storing tx (MainProcess - pid: 39278)
[2023-04-20 09:33:25] [DEBUG] (planetmint.abci.application_logic) Updating pre-commit state: 2 (MainProcess - pid: 39278)
[2023-04-20 09:33:25] [DEBUG] (planetmint.abci.application_logic) BLOCK:  (MainProcess - pid: 39278)
[2023-04-20 09:33:25] [INFO] (planetmint.backend.tarantool.sync_io.query) Could not insert transactions: (23, 'Tuple field 2 (transaction_id) type does not match one required by operation: expected string, got unsigned') (MainProcess - pid: 39278)
[2023-04-20 09:33:25] [ERROR] (asyncio) Task exception was never retrieved
future: <Task finished name='Task-10' coro=<ABCIServer._handler() done, defined at /home/employee/.cache/pypoetry/virtualenvs/planetmint-FYhcak4c-py3.9/lib/python3.9/site-packages/abci/server.py:163> exception=OperationDataInsertionError()> (MainProcess - pid: 39278)
Traceback (most recent call last):
  File "/home/employee/Projects/riddle-and-code/pl-dev/planetmint/planetmint/backend/tarantool/sync_io/query.py", line 50, in wrapper
    output = function_to_decorate(*args, **kw)
  File "/home/employee/Projects/riddle-and-code/pl-dev/planetmint/planetmint/backend/tarantool/sync_io/query.py", line 134, in store_transaction_outputs
    connection.connect().insert(
  File "/home/employee/.cache/pypoetry/virtualenvs/planetmint-FYhcak4c-py3.9/lib/python3.9/site-packages/tarantool/connection.py", line 1564, in insert
    return self._send_request(request, on_push, on_push_ctx)
  File "/home/employee/.cache/pypoetry/virtualenvs/planetmint-FYhcak4c-py3.9/lib/python3.9/site-packages/tarantool/connection.py", line 1279, in _send_request
    return self._send_request_wo_reconnect(request, on_push, on_push_ctx)
  File "/home/employee/.cache/pypoetry/virtualenvs/planetmint-FYhcak4c-py3.9/lib/python3.9/site-packages/tarantool/connection.py", line 1167, in _send_request_wo_reconnect
    response = request.response_class(self, self._read_response())
  File "/home/employee/.cache/pypoetry/virtualenvs/planetmint-FYhcak4c-py3.9/lib/python3.9/site-packages/tarantool/response.py", line 157, in __init__
    raise DatabaseError(self._return_code,
tarantool.error.DatabaseError: (23, 'Tuple field 2 (transaction_id) type does not match one required by operation: expected string, got unsigned')

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/employee/.cache/pypoetry/virtualenvs/planetmint-FYhcak4c-py3.9/lib/python3.9/site-packages/abci/server.py", line 192, in _handler
    response = self.protocol.process(req_type, message)
  File "/home/employee/.cache/pypoetry/virtualenvs/planetmint-FYhcak4c-py3.9/lib/python3.9/site-packages/abci/server.py", line 36, in process
    return handler(req)
  File "/home/employee/.cache/pypoetry/virtualenvs/planetmint-FYhcak4c-py3.9/lib/python3.9/site-packages/abci/server.py", line 63, in commit
    result = self.app.commit()
  File "/home/employee/Projects/riddle-and-code/pl-dev/planetmint/planetmint/abci/application_logic.py", line 265, in commit
    self.validator.models.store_bulk_transactions(self.block_transactions)
  File "/home/employee/Projects/riddle-and-code/pl-dev/planetmint/planetmint/model/dataaccessor.py", line 53, in store_bulk_transactions
    [self.update_utxoset(t) for t in txns + gov_txns]
  File "/home/employee/Projects/riddle-and-code/pl-dev/planetmint/planetmint/model/dataaccessor.py", line 53, in <listcomp>
    [self.update_utxoset(t) for t in txns + gov_txns]
  File "/home/employee/Projects/riddle-and-code/pl-dev/planetmint/planetmint/model/dataaccessor.py", line 310, in update_utxoset
    [
  File "/home/employee/Projects/riddle-and-code/pl-dev/planetmint/planetmint/model/dataaccessor.py", line 311, in <listcomp>
    backend.query.store_transaction_outputs(
  File "/usr/lib/python3.9/functools.py", line 888, in wrapper
    return dispatch(args[0].__class__)(*args, **kw)
  File "/home/employee/Projects/riddle-and-code/pl-dev/planetmint/planetmint/backend/tarantool/sync_io/query.py", line 68, in wrapper
    raise OperationDataInsertionError()
planetmint.backend.exceptions.OperationDataInsertionError

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions