1
0

lnpeer: only set initialized after both sent AND received "init"

had a trace where we tried to send "funding_locked" before being initialized:

D | lnpeer.Peer.[iq7zhmhck54vcax2vlrdcavq2m32wao7ekh6jyeglmnuuvv3js57r4id.onion:9735] | Sending FUNDING_LOCKED
E | lnworker.LNWallet | Exception in on_update_open_channel: AttributeError("'LNTransport' object has no attribute 'sk'")
Traceback (most recent call last):
  File "...\electrum\electrum\util.py", line 999, in wrapper
    return await func(*args, **kwargs)
  File "...\electrum\electrum\lnworker.py", line 674, in on_update_open_channel
    peer.send_funding_locked(chan)
  File "...\electrum\electrum\lnpeer.py", line 876, in send_funding_locked
    self.send_message("funding_locked", channel_id=channel_id, next_per_commitment_point=per_commitment_point_second)
  File "...\electrum\electrum\lnpeer.py", line 102, in send_message
    self.transport.send_bytes(raw_msg)
  File "...\electrum\electrum\lntransport.py", line 93, in send_bytes
    lc = aead_encrypt(self.sk, self.sn(), b'', l)
AttributeError: 'LNTransport' object has no attribute 'sk'
This commit is contained in:
SomberNight
2019-11-22 21:33:56 +01:00
parent 61dfcba092
commit 268e245322
2 changed files with 12 additions and 3 deletions

View File

@@ -670,7 +670,7 @@ class LNWallet(LNWorker):
if chan.get_state() == channel_states.FUNDED:
peer = self.peers.get(chan.node_id)
if peer:
if peer and peer.initialized.is_set():
peer.send_funding_locked(chan)
elif chan.get_state() == channel_states.OPEN: