Skip to content

After several "Bad Gateway" errors ETH Gas Station stops doing its job when Ethereum node is recovered #41

@Alex314Ru

Description

@Alex314Ru

We're running Docker version of ETH Gas Station with our own Ethereum node (geth v1.8.22-stable). When something happens with Ethereum node (sometimes it happens when the node is restarted), Gas Station logs several errors (there can be over 30 errors at the same second). Errors look like this:

[2019-02-18 17:22:14] [ERROR] Traceback (most recent call last):
  File "/opt/ethgasstation/egs/main.py", line 29, in master_control
    txpool.append_current_txp()
  File "/opt/ethgasstation/egs/egs_ref.py", line 143, in append_current_txp
    current_block = web3.eth.blockNumber
  File "/usr/local/lib/python3.6/dist-packages/web3/eth.py", line 101, in blockNumber
    return self.web3.manager.request_blocking("eth_blockNumber", [])
  File "/usr/local/lib/python3.6/dist-packages/web3/manager.py", line 103, in request_blocking
    response = self._make_request(method, params)
  File "/usr/local/lib/python3.6/dist-packages/web3/manager.py", line 86, in _make_request
    return request_func(method, params)
  File "/usr/local/lib/python3.6/dist-packages/web3/middleware/gas_price_strategy.py", line 18, in middleware
    return make_request(method, params)
  File "cytoolz/functoolz.pyx", line 232, in cytoolz.functoolz.curry.__call__
  File "/usr/local/lib/python3.6/dist-packages/web3/middleware/formatting.py", line 50, in apply_formatters
    response = make_request(method, params)
  File "/usr/local/lib/python3.6/dist-packages/web3/middleware/attrdict.py", line 18, in middleware
    response = make_request(method, params)
  File "cytoolz/functoolz.pyx", line 232, in cytoolz.functoolz.curry.__call__
  File "/usr/local/lib/python3.6/dist-packages/web3/middleware/formatting.py", line 50, in apply_formatters
    response = make_request(method, params)
  File "/usr/local/lib/python3.6/dist-packages/web3/middleware/normalize_errors.py", line 9, in middleware
    result = make_request(method, params)
  File "cytoolz/functoolz.pyx", line 232, in cytoolz.functoolz.curry.__call__
  File "/usr/local/lib/python3.6/dist-packages/web3/middleware/formatting.py", line 50, in apply_formatters
    response = make_request(method, params)
  File "cytoolz/functoolz.pyx", line 232, in cytoolz.functoolz.curry.__call__
  File "/usr/local/lib/python3.6/dist-packages/web3/middleware/formatting.py", line 50, in apply_formatters
    response = make_request(method, params)
  File "/usr/local/lib/python3.6/dist-packages/web3/middleware/exception_retry_request.py", line 80, in middleware
    return make_request(method, params)
  File "/usr/local/lib/python3.6/dist-packages/web3/providers/rpc.py", line 67, in make_request
    **self.get_request_kwargs()
  File "/usr/local/lib/python3.6/dist-packages/web3/utils/request.py", line 22, in make_post_request
    response.raise_for_status()
  File "/usr/local/lib/python3.6/dist-packages/requests/models.py", line 935, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 502 Server Error: Bad Gateway for url: <URL of our Ethereum node>

When Ethereum node is recovered, we see next logs in Docker container:

[2019-02-18 17:22:14] [INFO]  getting txpool hashes at block 7236900 ...
[2019-02-18 17:22:14] [INFO]  done. length = 0
[2019-02-18 17:22:14] [INFO]  listening for new transactions at block 7236900....
[2019-02-18 17:22:14] [WARN]  Pending transaction filter missing, re-establishing filter

And after that nothing else happens. Container with Gas Station is still alive, but it stops doing its job until it's manually restarted.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions