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

Electrumx keeps crashing randomly, 'ill-formed response error object: discovery is disabled' #62

Closed
Sroose opened this issue Sep 23, 2020 · 2 comments

Comments

@Sroose
Copy link

Sroose commented Sep 23, 2020

Using latest version of ElectrumX, the server crashes randomly every x minutes to hours. It always fails with the below error:
aiorpcx.jsonrpc.ProtocolError: (-32600, 'ill-formed response error object: discovery is disabled')

I'm having the same error in the dockerized version as the normally built one. Is this a malicious node sending bad json which the server can't handle?

INFO:electrumx:ElectrumX server starting
INFO:electrumx:logging level: INFO
INFO:Controller:Python version: 3.7.7 (default, May 20 2020, 21:33:25)  [GCC 9.2.0]
INFO:Controller:software version: ElectrumX 1.15.0
INFO:Controller:aiorpcX version: 0.18.4
INFO:Controller:supported protocol versions: 1.4-1.4.2
INFO:Controller:event loop policy: None
INFO:Controller:reorg limit is 200 blocks
INFO:Daemon:daemon #1 at 192.168.1.7:16789/ (current)
INFO:DB:switching current directory to /data
INFO:DB:using leveldb for DB backend
INFO:DB:opened UTXO DB (for sync: True)
INFO:DB:UTXO DB version: 8
INFO:DB:coin: BitcoinSegwit
INFO:DB:network: mainnet
INFO:DB:height: 649,428
INFO:DB:tip: 000000000000000000097e681bda79f82ebd041774467fb06e30b48c40b6ed42
INFO:DB:tx count: 570,555,113
INFO:DB:flushing DB cache at 1,200 MB
INFO:History:history DB version: 1
INFO:History:flush count: 1,036
INFO:DB:deleted 19 stale undo entries
INFO:SessionManager:RPC server listening on 0.0.0.0:8000

...
INFO:PeerManager:[xtrum.com:50002 SSL] verified in 0.2s
ERROR:PeerManager:[electrum5.hodlister.co:50002 SSL] marking bad: (too many peers already in bucket 142.44.179.119)
INFO:PeerManager:[electrum2.taborsky.cz:50002 SSL] verified in 0.5s
INFO:PeerManager:[bitcoins.sk:56002 SSL] verified in 0.4s
INFO:PeerManager:[167.172.226.175:50002 SSL] verified in 0.6s
INFO:PeerManager:[ttbit.mine.bz:50002 SSL] verified in 0.5s
INFO:PeerManager:[endthefed.onthewifi.com:50002 SSL] verified in 1.0s
INFO:PeerManager:[68.183.188.105:50002 SSL] verified in 1.1s
INFO:PeerManager:[ultracloud.tk:50002 SSL] verified in 0.8s
INFO:PeerManager:[satoshi.fan:50002 SSL] verified in 1.1s
INFO:SessionManager:closing down server for tcp://all_interfaces:50001
INFO:SessionManager:closing down server for wss://all_interfaces:50004
INFO:SessionManager:closing down server for rpc://0.0.0.0:8000
INFO:SessionManager:closing down server for ssl://all_interfaces:50002
INFO:Prefetcher:cancelled; prefetcher stopping
INFO:BlockProcessor:flushing to DB for a clean shutdown...
INFO:Controller:shutting down
INFO:Controller:shutdown complete
ERROR:electrumx:ElectrumX server terminated abnormally
Traceback (most recent call last):
  File "/electrumx/electrumx_server", line 35, in main
    asyncio.run(controller.run())
  File "/usr/local/lib/python3.7/asyncio/runners.py", line 43, in run
    return loop.run_until_complete(main)
  File "/usr/local/lib/python3.7/asyncio/base_events.py", line 587, in run_until_complete
    return future.result()
  File "/electrumx/electrumx/lib/server_base.py", line 125, in run
    await server_task
  File "/electrumx/electrumx/lib/server_base.py", line 98, in serve
    await self.serve(shutdown_event)
  File "/electrumx/electrumx/server/controller.py", line 134, in serve
    await group.spawn(wait_for_catchup())
  File "/usr/local/lib/python3.7/site-packages/aiorpcX-0.18.4-py3.7.egg/aiorpcx/curio.py", line 242, in __aexit__
    await self.join()
  File "/usr/local/lib/python3.7/site-packages/aiorpcX-0.18.4-py3.7.egg/aiorpcx/curio.py", line 211, in join
    raise task.exception()
  File "/electrumx/electrumx/server/session.py", line 621, in serve
    await group.spawn(self._manage_servers())
  File "/usr/local/lib/python3.7/site-packages/aiorpcX-0.18.4-py3.7.egg/aiorpcx/curio.py", line 242, in __aexit__
    await self.join()
  File "/usr/local/lib/python3.7/site-packages/aiorpcX-0.18.4-py3.7.egg/aiorpcx/curio.py", line 211, in join
    raise task.exception()
  File "/electrumx/electrumx/server/peers.py", line 459, in discover_peers
    await group.spawn(self._import_peers())
  File "/usr/local/lib/python3.7/site-packages/aiorpcX-0.18.4-py3.7.egg/aiorpcx/curio.py", line 242, in __aexit__
    await self.join()
  File "/usr/local/lib/python3.7/site-packages/aiorpcX-0.18.4-py3.7.egg/aiorpcx/curio.py", line 211, in join
    raise task.exception()
  File "/electrumx/electrumx/server/peers.py", line 234, in _monitor_peer
    if await self._should_drop_peer(peer):
  File "/electrumx/electrumx/server/peers.py", line 277, in _should_drop_peer
    await self._verify_peer(session, peer)
  File "/electrumx/electrumx/server/peers.py", line 373, in _verify_peer
    (session, peer))
  File "/usr/local/lib/python3.7/site-packages/aiorpcX-0.18.4-py3.7.egg/aiorpcx/curio.py", line 242, in __aexit__
    await self.join()
  File "/usr/local/lib/python3.7/site-packages/aiorpcX-0.18.4-py3.7.egg/aiorpcx/curio.py", line 211, in join
    raise task.exception()
  File "/electrumx/electrumx/server/peers.py", line 411, in _send_server_features
    features = await session.send_request(message)
  File "/usr/local/lib/python3.7/site-packages/aiorpcX-0.18.4-py3.7.egg/aiorpcx/session.py", line 529, in send_request
    return await self._send_concurrent(message, future, 1)
  File "/usr/local/lib/python3.7/site-packages/aiorpcX-0.18.4-py3.7.egg/aiorpcx/session.py", line 499, in _send_concurrent
    return await future
  File "/usr/local/lib/python3.7/site-packages/aiorpcX-0.18.4-py3.7.egg/aiorpcx/jsonrpc.py", line 721, in receive_message
    item, request_id = self._protocol.message_to_item(message)
  File "/usr/local/lib/python3.7/site-packages/aiorpcX-0.18.4-py3.7.egg/aiorpcx/jsonrpc.py", line 273, in message_to_item
    return cls._process_response(payload)
  File "/usr/local/lib/python3.7/site-packages/aiorpcX-0.18.4-py3.7.egg/aiorpcx/jsonrpc.py", line 220, in _process_response
    raise cls._error(code, message, False, request_id)
aiorpcx.jsonrpc.ProtocolError: (-32600, 'ill-formed response error object: discovery is disabled')
@SomberNight
Copy link
Member

probably duplicate of #22
can you try with master which has a fix for that?

@Sroose
Copy link
Author

Sroose commented Sep 23, 2020

Running now with code from master branch, no issues so far. This indeed seems to be solved by 76dca02

@Sroose Sroose closed this as completed Sep 23, 2020
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