HydraChain/hydrachain

Peer._run_decoded_packets of <Peer('127.0.0.1', 29871) HydraChain/v0.0.1> failed with AssertionError

jorisbontje opened this issue · 3 comments

with 63229e0, and 3 nodes:

$ hydrachain -d datadir rundummy --num_validators=3 --node_num=0 --seed=42
$ hydrachain -d datadir1 rundummy --num_validators=3 --node_num=1 --seed=42
$ hydrachain -d datadir2 rundummy --num_validators=3 --node_num=2 --seed=42

As soon as the 3rd node connects, the other two crash with the following exception:

INFO:p2p.peermgr    connecting random node=<Node(6299bf5d)>
INFO:p2p.peermgr    missing peers known=1 num_peers=1 min_peers=2
INFO:p2p.peermgr    connecting random node=<Node(6299bf5d)>
INFO:p2p.peermgr    missing peers known=1 num_peers=1 min_peers=2
INFO:p2p.peermgr    connecting random node=<Node(6299bf5d)>
INFO:p2p.peermgr    missing peers known=1 num_peers=1 min_peers=2
INFO:p2p.peermgr    connecting random node=<Node(2f099886)>
INFO:p2p.peer   received hello client_version=HydraChain/v0.0.1/darwin/py2.7.10 version=4 capabilities=[['hdc', 1], ['p2p', 4]]
CRITICAL:hdc.chainservice   setting up alarm
Traceback (most recent call last):
  File "/Users/mids/.virtualenvs/hydrachain/lib/python2.7/site-packages/gevent-1.1b3-py2.7-macosx-10.10-x86_64.egg/gevent/greenlet.py", line 519, in run
    result = self._run(*self.args, **self.kwargs)
  File "/Users/mids/.virtualenvs/hydrachain/lib/python2.7/site-packages/devp2p-0.5.2-py2.7.egg/devp2p/peer.py", line 206, in _run_decoded_packets
    self._handle_packet(self.mux.packet_queue.get())  # get_packet blocks
  File "/Users/mids/.virtualenvs/hydrachain/lib/python2.7/site-packages/devp2p-0.5.2-py2.7.egg/devp2p/peer.py", line 180, in _handle_packet
    protocol.receive_packet(packet)
  File "/Users/mids/.virtualenvs/hydrachain/lib/python2.7/site-packages/devp2p-0.5.2-py2.7.egg/devp2p/protocol.py", line 163, in receive_packet
    cmd(packet)
  File "/Users/mids/.virtualenvs/hydrachain/lib/python2.7/site-packages/devp2p-0.5.2-py2.7.egg/devp2p/protocol.py", line 135, in receive
    instance.receive(proto=self, data=klass.decode_payload(packet.payload))
  File "/Users/mids/.virtualenvs/hydrachain/lib/python2.7/site-packages/devp2p-0.5.2-py2.7.egg/devp2p/protocol.py", line 71, in receive
    cb(proto, **data)
  File "/Users/mids/Projects/ethereum/hydrachain/hydrachain/hdc_service.py", line 319, in on_receive_vote
    self.consensus_manager.process()
  File "/Users/mids/Projects/ethereum/hydrachain/hydrachain/consensus/manager.py", line 338, in process
    self.commit()
  File "/Users/mids/Projects/ethereum/hydrachain/hydrachain/consensus/manager.py", line 360, in commit
    assert success
AssertionError
<Greenlet at 0x107f1ceb0: <bound method Peer._run_decoded_packets of <Peer('127.0.0.1', 29871) HydraChain/v0.0.1>>> failed with AssertionError

Traceback (most recent call last):
  File "/Users/mids/.virtualenvs/hydrachain/bin/hydrachain", line 9, in <module>
    load_entry_point('hydrachain==0.0.1', 'console_scripts', 'hydrachain')()
  File "/Users/mids/Projects/ethereum/hydrachain/hydrachain/app.py", line 148, in app
    pyethapp_app.app()
  File "/Users/mids/.virtualenvs/hydrachain/lib/python2.7/site-packages/click-5.1-py2.7.egg/click/core.py", line 700, in __call__
    return self.main(*args, **kwargs)
  File "/Users/mids/.virtualenvs/hydrachain/lib/python2.7/site-packages/click-5.1-py2.7.egg/click/core.py", line 680, in main
    rv = self.invoke(ctx)
  File "/Users/mids/.virtualenvs/hydrachain/lib/python2.7/site-packages/click-5.1-py2.7.egg/click/core.py", line 1027, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/Users/mids/.virtualenvs/hydrachain/lib/python2.7/site-packages/click-5.1-py2.7.egg/click/core.py", line 873, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/Users/mids/.virtualenvs/hydrachain/lib/python2.7/site-packages/click-5.1-py2.7.egg/click/core.py", line 508, in invoke
    return callback(*args, **kwargs)
  File "/Users/mids/.virtualenvs/hydrachain/lib/python2.7/site-packages/click-5.1-py2.7.egg/click/decorators.py", line 16, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/Users/mids/Projects/ethereum/hydrachain/hydrachain/app.py", line 141, in rundummy
    evt.wait()
  File "/Users/mids/.virtualenvs/hydrachain/lib/python2.7/site-packages/gevent-1.1b3-py2.7-macosx-10.10-x86_64.egg/gevent/event.py", line 86, in wait
    result = self.hub.switch()
  File "/Users/mids/.virtualenvs/hydrachain/lib/python2.7/site-packages/gevent-1.1b3-py2.7-macosx-10.10-x86_64.egg/gevent/hub.py", line 510, in switch
    return greenlet.switch(self)
AssertionError

mhm, can not reproduce this.
does this also happen with fresh empty datadirs?

The specified datadirs were not existing beforehand

 DEBUG:hdc.consensus    1441896231 <CP A:'2ca7fd47' H:1 R:3 L:None I:0> no quorum for  {'p': <BlockProposal S:'2ca7fd47' H:1 B:30eba15d>} 
DEBUG:eth.chain nonce not set block_hash=<Block(#1 11fa56bc)>

ok, could reproduce. fixed in ethereum/pyethereum@cd9ec82