eos
eos copied to clipboard
TraceApi plugin can't parse eosio.token at 2.1.0
No params
in response of v1/trace_api/get_block
in nodeos 2.1.0
When I send query to v1/trace_api/get_block
with nodeos 2.0.9, I can get from, to, quantity, memo
for eosio.token in the response (params).
But when I send the same request to 2.1.0 nodeos, response doesn’t have params
I have eosio.token.abi
in /data/abis
and both nodes (2.0.9 / 2.1.0) have the same config. I only updated from the node 2.0.9 to 2.1.0
my config :
plugin = eosio::trace_api_plugin
trace-slice-stride=10000
trace-rpc-abi=eosio.token=abis/eosio.token.abi
trace-minimum-irreversible-history-blocks=100000
http-max-response-time-ms=3000
Working on issue. Will post updates as we have it.
Hi @farukterzioglu can you tell me how you obtained 2.1 and which OS you are running on? This only seems to be a problem under certain circumstances.
Hi @praphael I got it from Releases of this repository and I am running it on Ubuntu 18.04. I have been running the EOS node on the same machine for a long time. All the thing same, I only upgraded to the latest version.
Ok this definitely a bug in plugins/trace_api_plugin/abi_data_handler.cpp. When there is no return_value in the action, the chain/abi_serialzier will thrown an unpack exception, which causes function to return an empty tuple, so it is not included as part of JSON response. The fix is simply to separate out calls of parameter serialization and return_value serialization, and to wrap return_value serialization around a try/catch block. Will be updated ASAP.