Skip to content
This repository was archived by the owner on Sep 8, 2025. It is now read-only.
This repository was archived by the owner on Sep 8, 2025. It is now read-only.

Handle empty node list in PreferredPeerPool #760

@pipermerriam

Description

@pipermerriam

What is wrong?

This happens

   ERROR  05-23 16:09:45     service  Unexpected error in <p2p.peer.PreferredNodePeerPool object at 0x10f68bc88>, exiting
Traceback (most recent call last):
  File "/Users/piper/sites/py-evm/p2p/service.py", line 36, in run
    await self._run()
  File "/Users/piper/sites/py-evm/p2p/peer.py", line 697, in _run
    await self.maybe_connect_to_more_peers()
  File "/Users/piper/sites/py-evm/p2p/peer.py", line 763, in maybe_connect_to_more_peers
    await self._connect_to_nodes(self.get_nodes_to_connect())
  File "/Users/piper/sites/py-evm/p2p/peer.py", line 777, in _connect_to_nodes
    for node in nodes:
  File "/Users/piper/sites/py-evm/p2p/peer.py", line 954, in get_nodes_to_connect
    yield from self.discovery.get_random_nodes(num_nodes_needed)
  File "/Users/piper/sites/py-evm/p2p/kademlia.py", line 240, in get_random_nodes
    node = random.choice(bucket.nodes)
  File "/Users/piper/python-environments/trinity/lib/python3.6/random.py", line 257, in choice
    raise IndexError('Cannot choose from an empty sequence') from None
IndexError: Cannot choose from an empty sequence

How can it be fixed

Gracefully handle this situation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions