diff --git a/channeld/channel.c b/channeld/channel.c index f8d1cec51..8cabb200a 100644 --- a/channeld/channel.c +++ b/channeld/channel.c @@ -1114,11 +1114,9 @@ static struct io_plan *handle_peer_revoke_and_ack(struct io_conn *conn, "Bad revoke_and_ack %s", tal_hex(msg, msg)); } - if (!channel_awaiting_revoke_and_ack(peer->channel)) - peer_failed(io_conn_fd(peer->peer_conn), - &peer->pcs.cs, - &peer->channel_id, - "Unexpected revoke_and_ack"); + /* FIXME: We can get unexpected revoke_and_ack due to retransmit; we + * should really detect this case and set + * channel_awaiting_revoke_and_ack; normally it will be true here. */ /* BOLT #2: * diff --git a/channeld/full_channel.c b/channeld/full_channel.c index 6c405b9ad..b7fefa82c 100644 --- a/channeld/full_channel.c +++ b/channeld/full_channel.c @@ -795,7 +795,6 @@ bool channel_rcvd_revoke_and_ack(struct channel *channel, if (change & HTLC_LOCAL_F_PENDING) channel->changes_pending[LOCAL] = true; - assert(channel->awaiting_revoke_and_ack); channel->awaiting_revoke_and_ack = false; /* For funder, ack also means time to apply new feerate locally. */