Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

eth_call RPC call hangs #226

Open
ruuda opened this issue Mar 23, 2022 · 1 comment
Open

eth_call RPC call hangs #226

ruuda opened this issue Mar 23, 2022 · 1 comment

Comments

@ruuda
Copy link

ruuda commented Mar 23, 2022

SUMMARY

The following call hangs indefinitely. This happens both on the http RPC port, and when using a websocket.

$ curl -v http://«address-removed»:8545 -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","id":2,"method":"eth_call","params":[{"data":"0x1cfe7951","from":"0x0000000000000000000000000000000000000000","to":"0xfe8cd454b4a1ca468b57d79c0cc77ef5b6f64585"},"latest"]}' --speed-time 30
*   Trying «address-removed»...
* Connected to «address-removed» port 8545 (#0)
> POST / HTTP/1.1
> Host: «address-removed»:8545
> User-Agent: curl/7.82.0
> Accept: */*
> Content-Type: application/json
> Content-Length: 188
> 
* Operation too slow. Less than 1 bytes/sec transferred the last 30 seconds
* Closing connection 0
curl: (28) Operation too slow. Less than 1 bytes/sec transferred the last 30 seconds

In the logs, we can see this immediately after initiating the call:

{"args":{"from":"0x0000000000000000000000000000000000000000","to":"0xfe8cd454b4a1ca468b57d79c0cc77ef5b6f64585","gas":null,"gasPrice":null,"maxFeePerGas":null,"maxPriorityFeePerGas":null,"value":null,"nonce":null,"data":"0x1cfe7951","input":null},"block_or_hash":{"blockNumber":"latest"},"caller":"api.go:327","level":"debug","method":"eth_call","module":"eth_rpc","msg":"request","ts":"2022-03-23T13:51:19.575280494Z"}

Afterwards it also logs this, but I’m not sure it is related:

{"caller":"indexer.go:150","latest_indexed":642146,"latest_round":809552,"level":"debug","module":"gateway/indexer","msg":"checking health","runtime_id":"000000000000000000000000000000000000000000000000e2eaa99fc008f87f","ts":"2022-03-23T13:51:20.34231545Z"}
{"caller":"indexer.go:150","latest_indexed":642146,"latest_round":809554,"level":"debug","module":"gateway/indexer","msg":"checking health","runtime_id":"000000000000000000000000000000000000000000000000e2eaa99fc008f87f","ts":"2022-03-23T13:51:30.368776278Z"}

Our log level is set to debug.

ISSUE TYPE
  • Bug Report
STEPS TO REPRODUCE

For us this reproduces 100% reliably, but we know of others who are running this gateway where the call does work; it’s unclear what the problem is, but I don’t know how to narrow this down any further.

This could be related to #161 as well, which looks like a similar hang.

ACTUAL RESULTS

Nothing happens. With a websocket, there is still no response after 5 minutes. With Curl without --speed-time (which specifies a timeout in seconds), it also just hangs indefinitely, until I kill it after ~10 minutes.

Describe what actually happened. If possible run with extra verbosity (-vvvv)

If I run emerald-web3-gateway with -vvvv, it just prints its version. But we do run with

log:
  level: debug
  format: json

in the config.

EXPECTED RESULTS

We get a response to the RPC call within a few seconds. Or at least some log message about what is going on.

@ptrus
Copy link
Member

ptrus commented Mar 23, 2022

This is likely an issue on the oasis-node side. Can you provide the output of running:

oasis-node control status -a unix:<path-to-oasis-node-internal.sock>

and logs from the oasis-node around the time of the eth_Call request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants