-
Notifications
You must be signed in to change notification settings - Fork 3.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: accaddr cachefix #15433
fix: accaddr cachefix #15433
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you add a changelog?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done, thanks. Missed that in the contributor guide, my bad.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm, needs changelog
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm!
CHANGELOG.md
Outdated
@@ -38,6 +38,8 @@ Ref: https://keepachangelog.com/en/1.0.0/ | |||
|
|||
## [Unreleased] | |||
|
|||
* (types) [#15433](https://github.com/cosmos/cosmos-sdk/pull/15433) Allow disabling of account address caches (for printing bech32 account addresses). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The changelog should be under the bugfix or improvement section (whichever you think fits best).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Moved it there. Am I finally doing it right? :)
types/address.go
Outdated
// By default, caches are enabled. This enables or disables accAddrCache, consAddrCache, and valAddrCache. | ||
func SetAddrCacheEnabled(enabled bool) { | ||
isCachingEnabled = enabled | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's unsafe to mutate a global variable like this without synchronization (e.g. a mutex).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's only meant to be used once on client startup. If I put a mutex in SetAddrCacheEnabled
it should also be locked when checking isCachingEnabled
, meaning every time an address bech32 conversion happens.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You're correct that both reads and writes need to be synchronized. You might consider atomic.Bool as an alternative.
var cachingEnabled atomic.Bool
func SetCachingEnabled(b bool) { cachingEnabled.Store(b) }
func GetCachingEnabled() bool { return cachingEnabled.Load() }
Co-authored-by: Julien Robert <julien@rbrt.fr> Co-authored-by: Marko <marbar3778@yahoo.com> (cherry picked from commit cdf6471) # Conflicts: # CHANGELOG.md
Co-authored-by: Julien Robert <julien@rbrt.fr> Co-authored-by: Marko <marbar3778@yahoo.com> (cherry picked from commit cdf6471) # Conflicts: # CHANGELOG.md
Co-authored-by: KyleMoser <KyleMoser@users.noreply.github.com> Co-authored-by: Julien Robert <julien@rbrt.fr>
Co-authored-by: KyleMoser <KyleMoser@users.noreply.github.com> Co-authored-by: HuangYi <huang@crypto.com>
Co-authored-by: KyleMoser <KyleMoser@users.noreply.github.com> Co-authored-by: HuangYi <huang@crypto.com>
* build(deps): bump cometbft to v0.34.29 (cosmos#16553) * fix(x/auth): ensure nil .BaseAccounts are reported in ModuleAccount.Validate (backport cosmos#16554) (cosmos#16570) Co-authored-by: Emmanuel T Odeke <emmanuel@orijtech.com> Co-authored-by: Julien Robert <julien@rbrt.fr> * fix: snapshotter's failure is not propogated (backport cosmos#16588) (cosmos#16604) Co-authored-by: yihuang <huang@crypto.com> * feat: add custom max gas for block for sim config (backport cosmos#16656) (cosmos#16731) Co-authored-by: mmsqe <mavis@crypto.com> Co-authored-by: marbar3778 <marbar3778@yahoo.com> * fix: accaddr cachefix (backport cosmos#15433) (cosmos#16823) Co-authored-by: KyleMoser <KyleMoser@users.noreply.github.com> Co-authored-by: HuangYi <huang@crypto.com> * fix(cli): improve `prune` command ux (backport cosmos#16856) (cosmos#16876) Co-authored-by: Julien Robert <julien@rbrt.fr> * fix: query tx events with `>=` and `<=` operators (cosmos#16994) * docs: change bank multi-send command description (backport cosmos#16950) (cosmos#17019) * chore: prepare v0.46.14 (cosmos#16879) * refactor: add MigrateHandler to allow reuse migrate genesis related function (backport cosmos#17296) (cosmos#17301) Co-authored-by: mmsqe <mavis@crypto.com> Co-authored-by: Julien Robert <julien@rbrt.fr> * fix: resolve migration map in MigrateHandler (cosmos#17301) (cosmos#17302) * feat(x/gov): Emit VoterAddr (backport cosmos#17354) (cosmos#17357) Co-authored-by: Devon Bear <itsdevbear@berachain.com> Co-authored-by: Julien Robert <julien@rbrt.fr> * feat(x/gov): add MsgSubmitProposal SetMsgs method (backport cosmos#17387) (cosmos#17388) Co-authored-by: Julien Robert <julien@rbrt.fr> --------- Co-authored-by: Julien Robert <julien@rbrt.fr> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> Co-authored-by: Emmanuel T Odeke <emmanuel@orijtech.com> Co-authored-by: yihuang <huang@crypto.com> Co-authored-by: mmsqe <mavis@crypto.com> Co-authored-by: marbar3778 <marbar3778@yahoo.com> Co-authored-by: KyleMoser <KyleMoser@users.noreply.github.com> Co-authored-by: Rootul P <rootulp@gmail.com> Co-authored-by: Devon Bear <itsdevbear@berachain.com>
Co-authored-by: KyleMoser <KyleMoser@users.noreply.github.com> Co-authored-by: HuangYi <huang@crypto.com>
Description
Closes: #15317
Updates previous PR following advice from @julienrbrt, see #15318 (comment).
Requesting this PR be merged into main, then backported to v0.47 (as this functionality is needed by go relayer).
Author Checklist
All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.
I have...
!
to the type prefix if API or client breaking changeCHANGELOG.md
Reviewers Checklist
All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.
I have...
!
in the type prefix if API or client breaking change