eos icon indicating copy to clipboard operation
eos copied to clipboard

TraceApi plugin can't parse eosio.token at 2.1.0

Open farukterzioglu opened this issue 3 years ago • 4 comments

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

farukterzioglu avatar Jun 17 '21 14:06 farukterzioglu

Working on issue. Will post updates as we have it.

nksanthosh avatar Jun 17 '21 22:06 nksanthosh

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.

praphael avatar Jun 22 '21 18:06 praphael

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.

farukterzioglu avatar Jun 22 '21 18:06 farukterzioglu

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.

praphael avatar Jun 22 '21 21:06 praphael