Update Rust crate moka to v0.12.16 - #15
Open
konflux-staging[bot] wants to merge 1 commit into
Open
Conversation
konflux-staging
Bot
force-pushed
the
konflux/mintmaker/main/moka-0.x-lockfile
branch
from
September 23, 2025 20:14
401afc6 to
4f00c28
Compare
konflux-staging
Bot
force-pushed
the
konflux/mintmaker/main/moka-0.x-lockfile
branch
from
December 21, 2025 12:16
4f00c28 to
39da8b9
Compare
konflux-staging
Bot
force-pushed
the
konflux/mintmaker/main/moka-0.x-lockfile
branch
from
January 26, 2026 08:12
39da8b9 to
ec2936e
Compare
konflux-staging
Bot
force-pushed
the
konflux/mintmaker/main/moka-0.x-lockfile
branch
from
March 2, 2026 04:12
ec2936e to
f8fc901
Compare
konflux-staging
Bot
force-pushed
the
konflux/mintmaker/main/moka-0.x-lockfile
branch
from
March 22, 2026 08:22
f8fc901 to
f6878f1
Compare
konflux-staging
Bot
force-pushed
the
konflux/mintmaker/main/moka-0.x-lockfile
branch
from
August 11, 2026 17:32
f6878f1 to
5e27990
Compare
Signed-off-by: konflux-staging <124796549+konflux-staging[bot]@users.noreply.github.com>
konflux-staging
Bot
force-pushed
the
konflux/mintmaker/main/moka-0.x-lockfile
branch
from
August 13, 2026 00:18
5e27990 to
a6fff4d
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.12.8→0.12.16Release Notes
moka-rs/moka (moka)
v0.12.16Compare Source
Fixed
configured with the non-default LRU eviction policy (
EvictionPolicy::lru())by a race between insert and remove operations on the same key
([#592][gh-pull-0592] by [@kim-jhyeon][gh-kim-jhyeon], reported in
[#590][gh-issue-0590]):
sync::Cache,sync::SegmentedCacheandfuture::Cache.removing that entry from the internal concurrent hash table could leave an
orphaned node at the front of the LRU queue. Once present, no entry was ever
evicted again and the cache grew unboundedly past
max_capacity.a milder symptom: each occurrence permanently leaked one phantom entry
slot, causing
entry_countandweighted_sizeto over-report and theusable capacity to shrink by one entry per occurrence. Fixed by the same
change.
Changed
fence(Acquire)in the internalMiniArc's droppath with an
Acquireload of the reference count, so that downstreamprojects can now run ThreadSanitizer on code using Moka without hitting
this false positive.
std::sync::Archas a similar workaround.crossbeam-epochcrate fromv0.9.18tov0.9.20to avoid the following advisory ([#603][gh-pull-0603]):fmt::PointerforAtomicandSharedpointer types. However, raising the minimum version prevents downstream
lockfiles from resolving to an affected
crossbeam-epochversion viaMoka.
v0.12.15Compare Source
Fixed
expiration time and remain in the cache indefinitely when using a custom
Expirypolicy with per-entry expiration. ([#582][gh-pull-0582] by [@jiangzhe][gh-jiangzhe],
[#581][gh-pull-0581] by [@atrocities][gh-atrocities], reported in
[#575][gh-issue-0575]):
re-inserted, and
expire_after_updatereturnedNone. This primarilyaffected users who only override
expire_after_create, since the defaultexpire_after_updatereturnsduration_until_expiry, which isNoneforexpired entries.
[#564][gh-pull-0564]).
so
Expiry::expire_after_updatewas called.so
Expiry::expire_after_createis called instead.your
Expirytrait implementation.cht::segment::tests::drop_many_valuesanddrop_many_values_concurrentthat were failing on high-core-count machines([#586][gh-pull-0586]):
bucket array shrinking behavior of the internal segmented hash map across
different machines.
Changed
run_flaky_testscfg([#584][gh-pull-0584]):
crossbeam-epoch) timingthat is not guaranteed, causing intermittent failures.
RUSTFLAGS='--cfg run_flaky_tests'.v0.12.14Compare Source
Fixed
and_compute_withmethod in thefuture::Cache.([#574][gh-pull-0574] by [@Squadrick][gh-Squadrick]):
fclosure mayread a stale value, causing the first update to be lost when it is overwritten
by a later one.
Changed
dep:keyword in the crate features. ([#577][gh-pull-0577] by[@alexanderkjall][gh-alexanderkjall]).
v0.12.13Compare Source
Fixed
Expiryreturns
None(Issue [#565][gh-issue-0565], reported by[@sharksforarms][gh-sharksforarms]).
some edge cases ([#566][gh-pull-0566] by [@powergee][gh-powergee]).
expiration state to prevent rare race conditions that could cause use-after-free
issues ([#570][gh-pull-0570]).
Expiry::expire_after_updatenot clearing expiration time for expired entries(
future::Cache: [#549][gh-pull-0549], by [@singulared][gh-singulared],sync::Cache: [#564][gh-pull-0564]).v0.12.12Compare Source
Bumped the minimum supported Rust version (MSRV) to 1.71.1, released on August 3,
2023 ([#555][gh-pull-0555]).
Fixed
Expiryreturns
None([#548][gh-pull-0548], by [@awarus][gh-awarus]).deque::move_to_backmethod(found by Miri) ([#553][gh-pull-0553]).
Added
impl Expiryfor some types ([#519][gh-pull-0519], by [@koushiro][gh-koushiro]).Removed
by [@weiznich][gh-weiznich]).
once_cellcrate from the dependencies ([#520][gh-pull-0520], by[@Expyron][gh-Expyron]).
rustc_versioncrate from the dev-dependencies ([#554][gh-pull-0554]).v0.12.11Compare Source
Breaking Changes
Equivalenttrait was anunintended breaking change.
code to reborrow the key like
&*key.Added
Equivalenttrait for the key typeKof the caches.([#492][gh-pull-0492])
jittered_expiry_policyexample ([#489][gh-pull-0489]).Changed
[@musicinmybrain][gh-musicinmybrain]).
Cargo.tomlwas changed fromMIT OR Apache-2.0to(MIT OR Apache-2.0) AND Apache-2.0.crossbeam-channelcrate fromv0.5.5tov0.5.15to avoid the following issue ([#514][gh-pull-0514],by [karankurbur][gh-karankurbur]).
loomcrate to a dev-dependency([#509][gh-pull-0509], by [thomaseizinger][gh-thomaseizinger]).
reqwestcrate in the dev-dependencies fromv0.11tov0.12([#531][gh-pull-0531], by [musicinmybrain][gh-musicinmybrain]).
Removed
thiserrorcrate by manually implementingstd::error::Errorformoka::PredicateError([#512][gh-pull-0512], by [@brownjohnf][gh-brownjohnf]).pastecrate from the dev-dependencies ([#504][gh-pull-0504]).async-stdcrate from the dev-dependencies ([#534][gh-pull-0534]).non_send_fields_in_send_tythat no longer applies([#505][gh-pull-0505], by [@qti3e][gh-qti3e]).
Fixed
by [@quantpoet][gh-quantpoet]).
v0.12.10Compare Source
Changed
quantafeature by default. ([#482][gh-pull-0482])quanta::Instantwithstd::time::Instantto increase theaccuracy of time measurements ([#481][gh-pull-0481]):
quantafeature is enabled,quanta::Instantis used for someperformance critical parts in the cache, and
std::time::Instantis used forthe rest of the parts.
quantafeature will not make anynoticeable difference in the performance.
quantafeature is disabled (default),std::time::Instantis used forall time measurements.
AtomicU64of theportable-atomiccrate, which provides fallbackimplementations for platforms where
stdAtomicU64is not available([#480][gh-pull-0480]):
moka'satomic64feature no longer has any effect on the build asAtomicU64is now always available on all platforms. But we keep theatomic64feature inCargo.tomlfor backward compatibility.v0.12.9Compare Source
Bumped the minimum supported Rust version (MSRV) to 1.70 (June 1, 2023)
([#474][gh-pull-0474]).
Fixed
to_std_instantmethod when per-entryexpiration policy is used. ([#472][gh-issue-0472])
([#464][gh-issue-0464])
documentation to explain some internal behavior of the cache.
Added
and_try_compute_if_nobody_elsemethod tofuture::Cache'sentryAPI.([#460][gh-pull-0460], by [@xuehaonan27][gh-xuehaonan27])
Removed
triomphecrate from the dependency by adding our own internalArctype.([#456][gh-pull-0456])
Arcwill be more memory efficient thanstd::sync::Arcortriomphe::Arcon 64-bit platforms as it uses a singleAtomicU32counter.async-traitusage. ([#445][gh-pull-0445], by[@Swatinem][gh-Swatinem])
Changed
atomic64feature only when target supportsAtomicU64.([#466][gh-pull-0466], by [@zonyitoo][gh-zonyitoo])
once_celldependency optional ([#444][gh-pull-0444]).([#452][gh-pull-0452], by [@JoJoDeveloping][gh-JoJoDeveloping])
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
To execute skipped test pipelines write comment
/ok-to-test.Documentation
Find out how to configure dependency updates in MintMaker documentation or see all available configuration options in Renovate documentation.