Skip to content

Bump moka from 0.12.13 to 0.12.15 in /native - #165

Closed
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/cargo/native/moka-0.12.15
Closed

Bump moka from 0.12.13 to 0.12.15 in /native#165
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/cargo/native/moka-0.12.15

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Apr 28, 2026

Copy link
Copy Markdown

Bumps moka from 0.12.13 to 0.12.15.

Release notes

Sourced from moka's releases.

Moka 0.12.15

Version 0.12.15

Fixed

  • Fixed a bug where re-inserting an expired entry could cause it to lose its expiration time and remain in the cache indefinitely when using a custom Expiry policy with per-entry expiration. (#582gh-pull-0582 by @​jiangzhe, #581gh-pull-0581 by @​atrocities, reported in #575gh-issue-0575):
    • This occurred when an entry that had expired but not yet been evicted was re-inserted, and expire_after_update returned None. This primarily affected users who only override expire_after_create, since the default expire_after_update returns duration_until_expiry, which is None for expired entries.
    • This bug was introduced by the changes in v0.12.13 (#549gh-pull-0549 and #564gh-pull-0564).
    • Subtle behavior change:
      • Before this fix, re-inserting an expired entry was treated as an update, so Expiry::expire_after_update was called.
      • After this fix, re-inserting an expired entry is treated as a creation, so Expiry::expire_after_create is called instead.
      • This may change the expiration time of re-inserted entries, depending on your Expiry trait implementation.
  • Fixed flaky tests cht::segment::tests::drop_many_values and drop_many_values_concurrent that were failing on high-core-count machines (#586gh-pull-0586):
    • These tests were using a CPU-dependent segment count, causing inconsistent bucket array shrinking behavior of the internal segmented hash map across different machines.
    • Changed these tests to use a fixed segment count (4) for consistent results.

Changed

  • Disabled flaky GC-dependent tests by default using run_flaky_tests cfg (#584gh-pull-0584):
    • These tests rely on epoch-based garbage collection (crossbeam-epoch) timing that is not guaranteed, causing intermittent failures.
    • Fixed #539gh-issue-0539 and #580gh-issue-0580.
    • To run these tests, set RUSTFLAGS='--cfg run_flaky_tests'.

Moka 0.12.14

Version 0.12.14

Fixed

  • Fixed a race condition in the and_compute_with method in the future::Cache. (#574[gh-pull-0574] by [@​Squadrick][gh-Squadrick]):
    • When multiple calls are made concurrently for the same key, the f closure may read a stale value, causing the first update to be lost when it is overwritten by a later one.

Changed

... (truncated)

Changelog

Sourced from moka's changelog.

Version 0.12.15

Fixed

  • Fixed a bug where re-inserting an expired entry could cause it to lose its expiration time and remain in the cache indefinitely when using a custom Expiry policy 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]):
    • This occurred when an entry that had expired but not yet been evicted was re-inserted, and expire_after_update returned None. This primarily affected users who only override expire_after_create, since the default expire_after_update returns duration_until_expiry, which is None for expired entries.
    • This bug was introduced by the changes in v0.12.13 (#549[gh-pull-0549] and #564[gh-pull-0564]).
    • Subtle behavior change:
      • Before this fix, re-inserting an expired entry was treated as an update, so Expiry::expire_after_update was called.
      • After this fix, re-inserting an expired entry is treated as a creation, so Expiry::expire_after_create is called instead.
      • This may change the expiration time of re-inserted entries, depending on your Expiry trait implementation.
  • Fixed flaky tests cht::segment::tests::drop_many_values and drop_many_values_concurrent that were failing on high-core-count machines (#586[gh-pull-0586]):
    • These tests were using a CPU-dependent segment count, causing inconsistent bucket array shrinking behavior of the internal segmented hash map across different machines.
    • Changed these tests to use a fixed segment count (4) for consistent results.

Changed

  • Disabled flaky GC-dependent tests by default using run_flaky_tests cfg (#584[gh-pull-0584]):
    • These tests rely on epoch-based garbage collection (crossbeam-epoch) timing that is not guaranteed, causing intermittent failures.
    • Fixed #539[gh-issue-0539] and #580[gh-issue-0580].
    • To run these tests, set RUSTFLAGS='--cfg run_flaky_tests'.

Version 0.12.14

Fixed

  • Fixed a race condition in the and_compute_with method in the future::Cache. (#574[gh-pull-0574] by [@​Squadrick][gh-Squadrick]):
    • When multiple calls are made concurrently for the same key, the f closure may read a stale value, causing the first update to be lost when it is overwritten by a later one.

... (truncated)

Commits
  • 616473e Merge pull request #586 from moka-rs/fix-flaky-cht-test-on-many-core-machines
  • caf8c82 Apply cargo fmt
  • 65ff433 Fix flaky test cht::segment::tests::drop_many_values on many-core machines
  • fd103ad Update the change log for PR #586
  • 5baf38c Fix flaky test cht::segment::tests::drop_many_values_concurrent
  • 4b709c8 Merge pull request #585 from moka-rs/chore/prepare-v0.12.15
  • 9e7c73b Remove an unused link from the change log
  • fa14f78 Bump the version to v0.12.15
  • 98968b3 Update the change log for v0.12.15
  • 4c37fd4 Merge pull request #584 from moka-rs/chore/disable-flaky-tests-by-default
  • Additional commits viewable in compare view

Dependabot compatibility score

You can trigger a rebase of this PR by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Note
Automatic rebases have been disabled on this pull request as it has been open for over 30 days.

Bumps [moka](https://github.com/moka-rs/moka) from 0.12.13 to 0.12.15.
- [Release notes](https://github.com/moka-rs/moka/releases)
- [Changelog](https://github.com/moka-rs/moka/blob/main/CHANGELOG.md)
- [Commits](moka-rs/moka@v0.12.13...v0.12.15)

---
updated-dependencies:
- dependency-name: moka
  dependency-version: 0.12.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file rust Pull requests that update rust code labels Apr 28, 2026
schenksj added a commit that referenced this pull request Jun 19, 2026
* chore(deps): consolidate Dependabot updates

Triage and apply the open Dependabot dependency PRs in a single change.

Maven (pom.xml):
- jackson-databind 2.15.2 -> 2.22.0 (#178)
- maven-surefire-plugin 3.1.2 -> 3.5.6 (#177)
- exec-maven-plugin 3.1.0 -> 3.6.3 (#175)
- test-dependencies group (#173): junit 5.10.0 -> 6.0.3,
  s3 2.21.29 -> 2.43.0, azure-storage-blob 12.25.0 -> 12.33.3,
  azure-identity 1.12.0 -> 1.18.2, azure-core 1.48.0 -> 1.57.1,
  testcontainers 1.19.0 -> 2.0.5, google-cloud-storage 2.29.1 -> 2.67.0,
  google-cloud-nio 0.127.12 -> 0.131.0, mockito 5.7.0 -> 5.23.0,
  iceberg 1.7.1 -> 1.10.1, and maven-{compiler,resources,jar,source,
  javadoc,gpg}-plugin + central-publishing-maven-plugin bumps.

Cargo (native):
- futures 0.3.31 -> 0.3.32 (#164)
- tokio 1.45 -> 1.50 (#166)
- lru 0.12 -> 0.16 (#167)
- sha2 0.10 -> 0.11 (#163)
- thiserror 1 -> 2 (#170)
- libc / moka lockfile bumps (#169, #165)

GitHub Actions:
- actions/checkout v4 -> v6 (#162)

Held back (incompatible, not applied):
- scala-library 2.13.12 -> 3.8.3 (#173 sub-update): Scala 2->3 major;
  s3mock_2.13 requires Scala 2.13. Kept at 2.13.12.
- arrow-array / arrow-buffer 57 -> 58 (#168, #172): arrow, arrow-schema
  and parquet remain at 57 (pinned transitively by delta-kernel 0.19 and
  the quickwit fork). Mixing arrow 57/58 fails to compile.
- object_store 0.12 -> 0.13 (#171): breaking API changes and coupling
  with delta-kernel 0.19 / quickwit which pin 0.12.

Verified: `cargo check` clean; `mvn test-compile` clean;
PythonParityTest + BooleanFieldTest pass under junit 6 / surefire 3.5.6.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix(deps): hold junit at 5.12.2 — 6.0.3 requires Java 17

JUnit 6.0.x raised its baseline to Java 17 (junit-jupiter-api class files
are bytecode 61). This project targets Java 11, and CI compiles with
JDK 11, so the test sources failed with "class file has wrong version
61.0, should be 55.0". It only passed locally because the dev machine
runs JDK 19.

Bump to 5.12.2 instead — the latest Java 8/11-compatible 5.x line (still
an upgrade from the original 5.10.0). Verified compiling and running
tests under JDK 11.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* test(txlog): serialize global-cache tests to fix parallel race

CI surfaced flaky failures in txlog::cache tests (e.g.
test_clear_all_caches_removes_all_entries, test_global_cache_stats).
Root cause is test cross-contamination, not a production bug: several
tests exercise the process-wide cache registry / global manifest cache,
and `clear_all_caches()` wipes that shared state. Under cargo's parallel
runner one test's clear races with another's get/put/stats.

Reproduced deterministically on the unmodified code at
`--test-threads=16`: 13/40 runs failed across test_global_cache_stats,
test_get_or_create_cache_reuse, test_global_manifest_cache and the
clear_all_caches tests. Serializing them on a shared mutex: 0/40.

The moka 0.12.13 -> 0.12.15 patch in this PR only shifted scheduling
enough to make CI hit a pre-existing latent race; production code is
sound (get_or_create_cache uses double-checked locking, the cache is
best-effort with TTL/LRU eviction so a flush racing a read is at worst a
miss, and the sole production caller is an explicit invalidate-all JNI
API).

Add a poison-tolerant mutex (lock_global_state) and guard the six tests
that touch global cache state. Local-instance tests still run in
parallel.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@schenksj

schenksj commented Jul 5, 2026

Copy link
Copy Markdown
Collaborator

Consolidated into #184

@schenksj schenksj closed this Jul 5, 2026
@dependabot @github

dependabot Bot commented on behalf of github Jul 5, 2026

Copy link
Copy Markdown
Author

OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting @dependabot ignore this major version or @dependabot ignore this minor version. You can also ignore all major, minor, or patch releases for a dependency by adding an ignore condition with the desired update_types to your config file.

If you change your mind, just re-open this PR and I'll resolve any conflicts on it.

@dependabot
dependabot Bot deleted the dependabot/cargo/native/moka-0.12.15 branch July 5, 2026 02:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file rust Pull requests that update rust code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant