Skip to content

Commit f6ce772

Browse files
authored
fix(mempool): fix mempool.max-txs flag not using desired default of 0 (cosmos#794)
* add explicit override for viper config default * add changelog * check error and panic
1 parent 8e999d3 commit f6ce772

File tree

4 files changed

+12
-2
lines changed

4 files changed

+12
-2
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
### BUG FIXES
1717

18+
- [\#794](https://github.com/cosmos/evm/pull/794) Fix mempool.max-txs flag not using desired default of 0
1819
- [\#748](https://github.com/cosmos/evm/pull/748) Fix DynamicFeeChecker in Cosmos ante handler to respect NoBaseFee feemarkets' parameter.
1920
- [\#690](https://github.com/cosmos/evm/pull/690) Fix Ledger hardware wallet support for coin type 60.
2021
- [\#766](https://github.com/cosmos/evm/pull/766) Align gas estimation logic with go-ethereum v1.16.3

evmd/mempool.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package evmd
22

33
import (
44
"fmt"
5+
56
"github.com/cosmos/evm/server"
67

78
"cosmossdk.io/log"

server/server_app_options.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import (
1616
sdkserver "github.com/cosmos/cosmos-sdk/server"
1717
servertypes "github.com/cosmos/cosmos-sdk/server/types"
1818
sdk "github.com/cosmos/cosmos-sdk/types"
19+
sdkmempool "github.com/cosmos/cosmos-sdk/types/mempool"
1920
genutiltypes "github.com/cosmos/cosmos-sdk/x/genutil/types"
2021
)
2122

@@ -145,8 +146,10 @@ func GetLegacyPoolConfig(appOpts servertypes.AppOptions, logger log.Logger) *leg
145146

146147
func GetCosmosPoolMaxTx(appOpts servertypes.AppOptions, logger log.Logger) int {
147148
if appOpts == nil {
148-
logger.Error("app options is nil, using default cosmos pool max tx of -1 (no-op)")
149-
return 0
149+
// we don't want to return 0 here, as then appOpts.Get() will return nil and that will be
150+
// "accidentally" cast to the correct evm max tx default of 0, thereby hiding the error
151+
logger.Error("app options is nil, using sdk max tx default of -1 (no-op)")
152+
return sdkmempool.DefaultMaxTx
150153
}
151154

152155
return cast.ToInt(appOpts.Get(sdkserver.FlagMempoolMaxTxs))

server/start.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,12 @@ which accepts a path for the resulting pprof file.
184184
cmd.Flags().Uint(server.FlagInvCheckPeriod, 0, "Assert registered invariants every N blocks")
185185
cmd.Flags().Uint64(server.FlagMinRetainBlocks, 0, "Minimum block height offset during ABCI commit to prune CometBFT blocks")
186186
cmd.Flags().String(srvflags.AppDBBackend, "", "The type of database for application and snapshots databases")
187+
187188
cmd.Flags().Int32(server.FlagMempoolMaxTxs, 0, "The maximum number of transactions in the mempool")
189+
// explicitly override the app.toml default value, as normally config file takes precedence over flag defaults
190+
if err := cmd.Flags().Set(server.FlagMempoolMaxTxs, "0"); err != nil {
191+
panic(err)
192+
}
188193

189194
cmd.Flags().Bool(srvflags.GRPCOnly, false, "Start the node in gRPC query only mode without CometBFT process")
190195
cmd.Flags().Bool(srvflags.GRPCEnable, cosmosevmserverconfig.DefaultGRPCEnable, "Define if the gRPC server should be enabled")

0 commit comments

Comments
 (0)