Skip to content

Commit 82fb523

Browse files
yihuangmmsqe
andauthored
Problem: iavl prune bug not reproduced in integration test (#1705)
* Problem: iavl prune bug not reproduced in integration test Solution: manage to reproduce it fix test temp temp * fix build * deps * keep db types * fix test * cleanup * use upstream iavl * prune on node2 --------- Signed-off-by: yihuang <[email protected]> Co-authored-by: mmsqe <[email protected]>
1 parent 3beaf73 commit 82fb523

File tree

7 files changed

+50
-27
lines changed

7 files changed

+50
-27
lines changed

go.mod

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ require (
8989
github.com/cosmos/cosmos-proto v1.0.0-beta.5 // indirect
9090
github.com/cosmos/go-bip39 v1.0.0 // indirect
9191
github.com/cosmos/gogogateway v1.2.0 // indirect
92-
github.com/cosmos/iavl v1.2.1-0.20240731145221-594b181f427e // indirect
92+
github.com/cosmos/iavl v1.2.2 // indirect
9393
github.com/cosmos/ics23/go v0.11.0 // indirect
9494
github.com/cosmos/ledger-cosmos-go v0.13.3 // indirect
9595
github.com/cosmos/rosetta-sdk-go v0.10.0 // indirect
@@ -251,9 +251,9 @@ require (
251251

252252
// release/v0.50.x
253253
replace (
254-
cosmossdk.io/store => github.com/crypto-org-chain/cosmos-sdk/store v0.0.0-20241114020021-3300cc8f3836
255-
cosmossdk.io/x/tx => github.com/crypto-org-chain/cosmos-sdk/x/tx v0.0.0-20241114020021-3300cc8f3836
256-
github.com/cosmos/cosmos-sdk => github.com/crypto-org-chain/cosmos-sdk v0.50.6-0.20241114020021-3300cc8f3836
254+
cosmossdk.io/store => github.com/crypto-org-chain/cosmos-sdk/store v0.0.0-20241129122902-6031e793ee95
255+
cosmossdk.io/x/tx => github.com/crypto-org-chain/cosmos-sdk/x/tx v0.0.0-20241129122902-6031e793ee95
256+
github.com/cosmos/cosmos-sdk => github.com/crypto-org-chain/cosmos-sdk v0.43.0-beta1.0.20241129122902-6031e793ee95
257257
)
258258

259259
replace (
@@ -267,8 +267,6 @@ replace (
267267
github.com/99designs/keyring => github.com/cosmos/keyring v1.2.0
268268
// v0.38.x
269269
github.com/cometbft/cometbft => github.com/crypto-org-chain/cometbft v0.0.0-20241106091515-ce418f845d9a
270-
// release/v1.2.x
271-
github.com/cosmos/iavl => github.com/crypto-org-chain/iavl v0.0.0-20241126033451-a3e0980a5b06
272270
// dgrijalva/jwt-go is deprecated and doesn't receive security updates.
273271
// TODO: remove it: https://github.com/cosmos/cosmos-sdk/issues/13134
274272
github.com/dgrijalva/jwt-go => github.com/golang-jwt/jwt/v4 v4.4.2

go.sum

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -391,6 +391,8 @@ github.com/cosmos/gogogateway v1.2.0/go.mod h1:iQpLkGWxYcnCdz5iAdLcRBSw3h7NXeOkZ
391391
github.com/cosmos/gogoproto v1.4.2/go.mod h1:cLxOsn1ljAHSV527CHOtaIP91kK6cCrZETRBrkzItWU=
392392
github.com/cosmos/gogoproto v1.7.0 h1:79USr0oyXAbxg3rspGh/m4SWNyoz/GLaAh0QlCe2fro=
393393
github.com/cosmos/gogoproto v1.7.0/go.mod h1:yWChEv5IUEYURQasfyBW5ffkMHR/90hiHgbNgrtp4j0=
394+
github.com/cosmos/iavl v1.2.2 h1:qHhKW3I70w+04g5KdsdVSHRbFLgt3yY3qTMd4Xa4rC8=
395+
github.com/cosmos/iavl v1.2.2/go.mod h1:GiM43q0pB+uG53mLxLDzimxM9l/5N9UuSY3/D0huuVw=
394396
github.com/cosmos/ibc-go/modules/apps/callbacks v0.0.0-20240913130017-6b2554360c0e h1:jMqihcJRBdpRrKGOMS1bDyyoo2JoQxv4QmMCwK3HSvI=
395397
github.com/cosmos/ibc-go/modules/apps/callbacks v0.0.0-20240913130017-6b2554360c0e/go.mod h1:akR14gsU5YD5S1G5I6lOI7z51OjR1vJko06Rs/3/Ym0=
396398
github.com/cosmos/ibc-go/modules/capability v1.0.1 h1:ibwhrpJ3SftEEZRxCRkH0fQZ9svjthrX2+oXdZvzgGI=
@@ -420,20 +422,18 @@ github.com/crypto-org-chain/btree v0.0.0-20240406140148-2687063b042c h1:MOgfS4+F
420422
github.com/crypto-org-chain/btree v0.0.0-20240406140148-2687063b042c/go.mod h1:twD9XRA5jj9VUQGELzDO4HPQTNJsoWWfYEL+EUQ2cKY=
421423
github.com/crypto-org-chain/cometbft v0.0.0-20241106091515-ce418f845d9a h1:0EN1TkzHTAxpgpGaZJY3G7L4jf4+sYnI7FOmBFLCg4U=
422424
github.com/crypto-org-chain/cometbft v0.0.0-20241106091515-ce418f845d9a/go.mod h1:khbgmtxbgwJfMqDmnGY4rl2sQpTdzpPb1f9nqnfpy1o=
423-
github.com/crypto-org-chain/cosmos-sdk v0.50.6-0.20241114020021-3300cc8f3836 h1:KY8VONzVYz6Q2GZdxuCBwgzRZxhy4D0znlOyDE6tNEs=
424-
github.com/crypto-org-chain/cosmos-sdk v0.50.6-0.20241114020021-3300cc8f3836/go.mod h1:JwwsMeZldLN20b72mmbWPY0EV9rs+v/12hRu1JFttvY=
425-
github.com/crypto-org-chain/cosmos-sdk/store v0.0.0-20241114020021-3300cc8f3836 h1:U2dfYbl+QIcbEQMs3tutCopmjFZlEip7bwROyf+txo0=
426-
github.com/crypto-org-chain/cosmos-sdk/store v0.0.0-20241114020021-3300cc8f3836/go.mod h1:8DwVTz83/2PSI366FERGbWSH7hL6sB7HbYp8bqksNwM=
427-
github.com/crypto-org-chain/cosmos-sdk/x/tx v0.0.0-20241114020021-3300cc8f3836 h1:i4ubInu2ixIWOxjADpdLcaO08iIAQjIQucwsNutNZmM=
428-
github.com/crypto-org-chain/cosmos-sdk/x/tx v0.0.0-20241114020021-3300cc8f3836/go.mod h1:V6DImnwJMTq5qFjeGWpXNiT/fjgE4HtmclRmTqRVM3w=
425+
github.com/crypto-org-chain/cosmos-sdk v0.43.0-beta1.0.20241129122902-6031e793ee95 h1:z98NuFZmWO/J/KkMSjAYr2OIRBH9e3/mt8V8hsQ7mZU=
426+
github.com/crypto-org-chain/cosmos-sdk v0.43.0-beta1.0.20241129122902-6031e793ee95/go.mod h1:JwwsMeZldLN20b72mmbWPY0EV9rs+v/12hRu1JFttvY=
427+
github.com/crypto-org-chain/cosmos-sdk/store v0.0.0-20241129122902-6031e793ee95 h1:o+MT8Wg2ZFRqEfNHZB7Ungd97heAf+qia4bf+u+14E0=
428+
github.com/crypto-org-chain/cosmos-sdk/store v0.0.0-20241129122902-6031e793ee95/go.mod h1:8DwVTz83/2PSI366FERGbWSH7hL6sB7HbYp8bqksNwM=
429+
github.com/crypto-org-chain/cosmos-sdk/x/tx v0.0.0-20241129122902-6031e793ee95 h1:HmcXnK71J0aF+IGU7daBY9C/M23DbPhLNuu1MFQp4Rs=
430+
github.com/crypto-org-chain/cosmos-sdk/x/tx v0.0.0-20241129122902-6031e793ee95/go.mod h1:V6DImnwJMTq5qFjeGWpXNiT/fjgE4HtmclRmTqRVM3w=
429431
github.com/crypto-org-chain/ethermint v0.6.1-0.20241118003049-cd93407bcf05 h1:4mewSJnWOTwRbBntlAtOj5ZevujX4PGwn57QcO99+Bo=
430432
github.com/crypto-org-chain/ethermint v0.6.1-0.20241118003049-cd93407bcf05/go.mod h1:9FNO9k70szJ7CEge4tnJraWu3baTbwNxjpZhZBqlMok=
431433
github.com/crypto-org-chain/go-block-stm v0.0.0-20240919080136-6c49aef68716 h1:OvD5Rm0B6LHUJk6z858UgwdP72jU2DuUdXeclRyKpDI=
432434
github.com/crypto-org-chain/go-block-stm v0.0.0-20240919080136-6c49aef68716/go.mod h1:iwQTX9xMX8NV9k3o2BiWXA0SswpsZrDk5q3gA7nWYiE=
433435
github.com/crypto-org-chain/go-ethereum v1.10.20-0.20240926023215-d2275b4afb9a h1:IUPD+dg1YQl8cLocxQ/Mbx/ObTgAgcrZlcBhFjsLO40=
434436
github.com/crypto-org-chain/go-ethereum v1.10.20-0.20240926023215-d2275b4afb9a/go.mod h1:A249HEl6XyiV5zSnKM9j9RF3szMghMNONMyNvYuqQIw=
435-
github.com/crypto-org-chain/iavl v0.0.0-20241126033451-a3e0980a5b06 h1:Q4MWY/ErbKRRcPWXYn/0s2ycNj0EaBlxAbjXsAyJ6gY=
436-
github.com/crypto-org-chain/iavl v0.0.0-20241126033451-a3e0980a5b06/go.mod h1:GiM43q0pB+uG53mLxLDzimxM9l/5N9UuSY3/D0huuVw=
437437
github.com/danieljoos/wincred v1.2.0 h1:ozqKHaLK0W/ii4KVbbvluM91W2H3Sh0BncbUNPS7jLE=
438438
github.com/danieljoos/wincred v1.2.0/go.mod h1:FzQLLMKBFdvu+osBrnFODiv32YGwCfx0SkRa/eYHgec=
439439
github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=

gomod2nix.toml

Lines changed: 8 additions & 9 deletions
Large diffs are not rendered by default.

integration_tests/cosmoscli.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2020,3 +2020,6 @@ def e2ee_encrypt_to_validators(self, input, **kwargs):
20202020
.strip()
20212021
.decode()
20222022
)
2023+
2024+
def prune(self, kind="everything"):
2025+
return self.raw("prune", kind, home=self.data_dir).decode()
Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,17 @@
1+
import os
2+
13
from .utils import ADDRS, eth_to_bech32, wait_for_new_blocks
24

35

46
def test_permissions_updates(cronos):
7+
"""
8+
- test permissions updates
9+
- reproduce an iavl prune issue: https://github.com/cosmos/iavl/pull/1007
10+
"""
511
acc = eth_to_bech32(ADDRS["signer1"])
6-
cli = cronos.cosmos_cli()
12+
cli = cronos.cosmos_cli(2) # node2 is iavl
13+
cli.create_account("community", os.environ["COMMUNITY_MNEMONIC"])
14+
cli.create_account("admin", os.environ["VALIDATOR1_MNEMONIC"])
715
rsp = cli.query_permissions(acc)
816
print("permissions", rsp)
917
assert rsp["can_change_token_mapping"] is False
@@ -13,11 +21,21 @@ def test_permissions_updates(cronos):
1321
rsp = cli.update_permissions(acc, 3, from_="community")
1422
assert rsp["code"] != 0, "should not have the permission"
1523

16-
rsp = cli.update_permissions(acc, 3, from_="validator")
24+
rsp = cli.update_permissions(acc, 3, from_="admin")
1725
assert rsp["code"] == 0, rsp["raw_log"]
18-
wait_for_new_blocks(cli, 1)
26+
27+
wait_for_new_blocks(cli, 5)
1928

2029
rsp = cli.query_permissions(acc)
2130
print("permissions", rsp)
2231
assert rsp["can_change_token_mapping"] is True
2332
assert rsp["can_turn_bridge"] is True
33+
34+
cronos.supervisorctl("stop", "cronos_777-1-node2")
35+
print(cli.prune())
36+
cronos.supervisorctl("start", "cronos_777-1-node2")
37+
38+
rsp = cli.update_permissions(acc, 4, from_="admin")
39+
assert rsp["code"] == 0, rsp["raw_log"]
40+
41+
wait_for_new_blocks(cli, 5)

scripts/.env

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,6 @@ export COMMUNITY_MNEMONIC="notable error gospel wave pair ugly measure elite tod
66
export SIGNER1_MNEMONIC="shed crumble dismiss loyal latin million oblige gesture shrug still oxygen custom remove ribbon disorder palace addict again blanket sad flock consider obey popular"
77
export SIGNER2_MNEMONIC="night renew tonight dinner shaft scheme domain oppose echo summer broccoli agent face guitar surface belt veteran siren poem alcohol menu custom crunch index"
88
export SIGNER3_MNEMONIC="step endless survey brand topic warrior merry boat metal throw tag recycle pitch animal drill jar hero library arm swift kitten proof acoustic chef"
9+
# same account as VALIDATOR1_MNEMONIC
910
export CRONOS_ADMIN="crc12luku6uxehhak02py4rcz65zu0swh7wjsrw0pp"
10-
export IBC_CRO_DENOM="ibc/6411AE2ADA1E73DB59DB151A8988F9B7D5E7E233D8414DB6817F8F1A01611F86"
11+
export IBC_CRO_DENOM="ibc/6411AE2ADA1E73DB59DB151A8988F9B7D5E7E233D8414DB6817F8F1A01611F86"

store/rootmulti/store.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -445,6 +445,10 @@ func (rs *Store) SetIAVLCacheSize(size int) {
445445
func (rs *Store) SetIAVLDisableFastNode(disable bool) {
446446
}
447447

448+
// Implements interface CommitMultiStore
449+
func (rs *Store) SetIAVLSyncPruning(syncPruning bool) {
450+
}
451+
448452
// Implements interface CommitMultiStore
449453
func (rs *Store) SetLazyLoading(lazyLoading bool) {
450454
}

0 commit comments

Comments
 (0)