spesmilo / spesmilo/electrumx

Running Dogecoin and get crash for abnormally

Open
#155 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
568
Forks
447
PR merge metrics
No merged PRs in 30d

Description

Running with Dogecoin daemon

Suddenly get crash with abnormally without knowing any reason.

Environment:
COIN=Dogecoin
CACHE_MB=200
DB_ENGINE=rocksdb

Its quite similar with this issue #99 ,but i'm running 1.16.0 which already cover with the changes https://github.com/spesmilo/electrumx/issues/99#issuecomment-780899457

Error Log:

INFO:DB:flush #315 took 1.7s.  Height 3,773,498 txs: 76,274,088 (+274,992)
INFO:DB:tx/sec since genesis: 6,681, since last flush: 8,165
INFO:DB:sync time: 03h 10m 15s  ETA: 06m 35s
INFO:Prefetcher:cancelled; prefetcher stopping
INFO:SessionManager:closing down server for rpc://0.0.0.0:8000
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 129, in run
    await server_task
  File "/electrumx/electrumx/lib/server_base.py", line 102, 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.5-py3.7.egg/aiorpcx/curio.py", line 242, in __aexit__
    await self.join()
  File "/usr/local/lib/python3.7/site-packages/aiorpcX-0.18.5-py3.7.egg/aiorpcx/curio.py", line 211, in join
    raise task.exception()
  File "/electrumx/electrumx/server/block_processor.py", line 702, in fetch_and_process_blocks
    await group.spawn(self._process_prefetched_blocks())
  File "/usr/local/lib/python3.7/site-packages/aiorpcX-0.18.5-py3.7.egg/aiorpcx/curio.py", line 242, in __aexit__
    await self.join()
  File "/usr/local/lib/python3.7/site-packages/aiorpcX-0.18.5-py3.7.egg/aiorpcx/curio.py", line 211, in join
    raise task.exception()
  File "/electrumx/electrumx/server/block_processor.py", line 663, in _process_prefetched_blocks
    await self.check_and_advance_blocks(blocks)
  File "/electrumx/electrumx/server/block_processor.py", line 222, in check_and_advance_blocks
    for n, raw_block in enumerate(raw_blocks)]
  File "/electrumx/electrumx/server/block_processor.py", line 222, in <listcomp>
    for n, raw_block in enumerate(raw_blocks)]
  File "/electrumx/electrumx/lib/coins.py", line 255, in block
    header = cls.block_header(raw_block, height)
  File "/electrumx/electrumx/lib/coins.py", line 299, in block_header
    return deserializer.read_header(cls.BASIC_HEADER_SIZE)
  File "/electrumx/electrumx/lib/tx.py", line 343, in read_header
    self.read_auxpow()
  File "/electrumx/electrumx/lib/tx.py", line 331, in read_auxpow
    return self._read_nbytes(end - start)
  File "/electrumx/electrumx/lib/tx.py", line 184, in _read_nbytes
    assert self.binary_length >= end
AssertionError

Someone please assist me, thank you guys.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at electrumx/server/block_processor.py in check_and_advance_blocks and _process_prefetched_blocks, then follow the Dogecoin header path through electrumx/lib/coins.py and electrumx/lib/tx.py read_auxpow. Reproduce with the listed Dogecoin, RocksDB, and cache settings, and determine what causes the AssertionError so synchronization no longer terminates abnormally.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.