lntest+itest: remove assertion while iterating mempool

This commit is contained in:
yyforyongyu 2022-11-03 18:15:02 +08:00
parent 28203fc77c
commit 17f08a87db
No known key found for this signature in database
GPG key ID: 9BCD95C4FF296868
2 changed files with 19 additions and 4 deletions

View file

@ -477,7 +477,14 @@ func testRevokedCloseRetributionRemoteHodl(ht *lntest.HarnessTest) {
for _, txid := range mempool {
// Check that the justice tx has the appropriate number
// of inputs.
tx := ht.Miner.GetRawTransaction(txid)
//
// NOTE: We don't use `ht.Miner.GetRawTransaction`
// which asserts a txid must be found as the HTLC
// spending txes might be aggregated.
tx, err := ht.Miner.Client.GetRawTransaction(txid)
if err != nil {
return nil, err
}
exNumInputs := 2 + numInvoices
if len(tx.MsgTx().TxIn) == exNumInputs {

View file

@ -372,9 +372,17 @@ func (h *HarnessMiner) AssertOutpointInMempool(op wire.OutPoint) *wire.MsgTx {
}
for _, txid := range mempool {
// We require the RPC call to be succeeded and won't
// wait for it as it's an unexpected behavior.
tx := h.GetRawTransaction(txid)
// We don't use `ht.Miner.GetRawTransaction` which
// asserts a txid must be found. While iterating here,
// the actual mempool state might have been changed,
// causing a given txid being removed and cannot be
// found. For instance, the aggregation logic used in
// sweeping HTLC outputs will update the mempool by
// replacing the HTLC spending txes with a single one.
tx, err := h.Client.GetRawTransaction(txid)
if err != nil {
return err
}
msgTx = tx.MsgTx()
for _, txIn := range msgTx.TxIn {