From b7e5684cee9938b4d20e064aa0af0b9141daae03 Mon Sep 17 00:00:00 2001 From: HuangYi Date: Wed, 9 Nov 2022 12:59:22 +0800 Subject: [PATCH 1/3] add error log when iavl set failed Ref: #12012 --- CHANGELOG.md | 1 + store/iavl/store.go | 11 ++++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4ece425deebb..b36217b69c07 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -85,6 +85,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ * [#13236](https://github.com/cosmos/cosmos-sdk/pull/13236) Integrate Filter Logging * [#13528](https://github.com/cosmos/cosmos-sdk/pull/13528) Update `ValidateMemoDecorator` to only check memo against `MaxMemoCharacters` param when a memo is present. * [#13651](https://github.com/cosmos/cosmos-sdk/pull/13651) Update `server/config/config.GetConfig` function. +* [#]() Add an error log if iavl set operation failed. ### State Machine Breaking diff --git a/store/iavl/store.go b/store/iavl/store.go index c6878e4a39b8..1d6dd310756a 100644 --- a/store/iavl/store.go +++ b/store/iavl/store.go @@ -37,7 +37,8 @@ var ( // Store Implements types.KVStore and CommitKVStore. type Store struct { - tree Tree + tree Tree + logger log.Logger } // LoadStore returns an IAVL Store as a CommitKVStore. Internally, it will load the @@ -87,7 +88,8 @@ func LoadStoreWithInitialVersion(db dbm.DB, logger log.Logger, key types.StoreKe } return &Store{ - tree: tree, + tree: tree, + logger: logger, }, nil } @@ -198,7 +200,10 @@ func (st *Store) CacheWrapWithListeners(storeKey types.StoreKey, listeners []typ func (st *Store) Set(key, value []byte) { types.AssertValidKey(key) types.AssertValidValue(value) - st.tree.Set(key, value) + _, err := st.tree.Set(key, value) + if err != nil { + st.logger.Error("iavl set error", "error", err.Error()) + } } // Implements types.KVStore. From 20ad32d84d56ef9d181322a83ff3e303936990ff Mon Sep 17 00:00:00 2001 From: yihuang Date: Wed, 9 Nov 2022 13:00:56 +0800 Subject: [PATCH 2/3] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b36217b69c07..67c6214280f5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -85,7 +85,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ * [#13236](https://github.com/cosmos/cosmos-sdk/pull/13236) Integrate Filter Logging * [#13528](https://github.com/cosmos/cosmos-sdk/pull/13528) Update `ValidateMemoDecorator` to only check memo against `MaxMemoCharacters` param when a memo is present. * [#13651](https://github.com/cosmos/cosmos-sdk/pull/13651) Update `server/config/config.GetConfig` function. -* [#]() Add an error log if iavl set operation failed. +* [#13803](https://github.com/cosmos/cosmos-sdk/pull/13803) Add an error log if iavl set operation failed. ### State Machine Breaking From 34e7e3e399a5f3e54409a55b9862fa8ef90e3988 Mon Sep 17 00:00:00 2001 From: HuangYi Date: Wed, 9 Nov 2022 13:05:54 +0800 Subject: [PATCH 3/3] play safe --- store/iavl/store.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/store/iavl/store.go b/store/iavl/store.go index 1d6dd310756a..19ee07a545c0 100644 --- a/store/iavl/store.go +++ b/store/iavl/store.go @@ -201,7 +201,7 @@ func (st *Store) Set(key, value []byte) { types.AssertValidKey(key) types.AssertValidValue(value) _, err := st.tree.Set(key, value) - if err != nil { + if err != nil && st.logger != nil { st.logger.Error("iavl set error", "error", err.Error()) } }