From 312efd95523249f7f47b5530a3cbcc2000766d70 Mon Sep 17 00:00:00 2001 From: chunfengSun <516108736@qq.com> Date: Wed, 23 Nov 2022 18:57:45 +0800 Subject: [PATCH] Merge PR: fix random panic parallel tx (#2794) --- libs/cosmos-sdk/baseapp/baseapp_parallel.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libs/cosmos-sdk/baseapp/baseapp_parallel.go b/libs/cosmos-sdk/baseapp/baseapp_parallel.go index c6476b37de..1f6408b877 100644 --- a/libs/cosmos-sdk/baseapp/baseapp_parallel.go +++ b/libs/cosmos-sdk/baseapp/baseapp_parallel.go @@ -279,6 +279,7 @@ func (app *BaseApp) runTxs() []*abci.ResponseDeliverTx { pm.blockGasMeterMu.Unlock() // merge tx pm.SetCurrentIndex(txIndex, res) + pm.finalResult[txIndex] = res currentGas += uint64(res.resp.GasUsed) txIndex++ @@ -335,7 +336,7 @@ func (app *BaseApp) endParallelTxs() [][]byte { txs := make([]sdk.Tx, app.parallelTxManage.txSize) app.FeeSplitCollector = make([]*sdk.FeeSplitInfo, 0) for index := 0; index < app.parallelTxManage.txSize; index++ { - txRes := app.parallelTxManage.txResultCollector.getTxResult(index) + txRes := app.parallelTxManage.finalResult[index] logIndex[index] = txRes.paraMsg.LogIndex errs[index] = txRes.paraMsg.AnteErr hasEnterEvmTx[index] = txRes.paraMsg.HasRunEvmTx @@ -617,6 +618,7 @@ type parallelTxManager struct { extraTxsInfo []*extraDataForTx txResultCollector *txResultCollector + finalResult []*executeResult groupList map[int][]int nextTxInGroup map[int]int @@ -745,6 +747,7 @@ func (f *parallelTxManager) init() { txSize := f.txSize f.txResultCollector.init(txSize) + f.finalResult = make([]*executeResult, txSize) txsInfoCap := cap(f.extraTxsInfo) if f.extraTxsInfo == nil || txsInfoCap < txSize {