• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

ben-manes / caffeine / #5528 / 1
100%
master: 100%

Build:
Build:
LAST BUILD BRANCH: v3.dev
DEFAULT BRANCH: master
Ran 21 Jun 2026 12:39PM UTC
Files 78
Run time 1s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

21 Jun 2026 12:00PM UTC coverage: 99.988%. Remained the same
#5528.1

push

github

ben-manes
avoid over-aggressive refresh discard (fixes #1970)

The low bit of an entry's write time is the refresh soft-lock marker.
A reader probing for a refresh sets it transiently (and starts no
load), but the completion's `getWriteTime() == writeTime` ABA check
mistook that marker for a concurrent write and discarded the freshly
completed reload.

Compare the base write time (masking the marker bit) in the completion,
and keep the refresh token registered across the value swap so the
compute machinery's discardRefresh clears it only after setWriteTime,
closing the remove-then-refresh stampede window. Re-validate the
soft-lock inside the entry's computeIfAbsent so a delayed reader aborts
instead of submitting a duplicate, stale reload. Apply the same
hold-token change to the explicit LocalLoadingCache.refresh and
LocalAsyncLoadingCache.tryComputeRefresh completions.

Cover the discard and the stampede with deterministic Fray and Lincheck
(runConcurrentTest) regressions and @CacheSpec token-cleared tests,
alongside the reporter's stress test.

4046 of 4054 branches covered (99.8%)

8238 of 8239 relevant lines covered (99.99%)

1.0 hits per line

Source Files on job #5528.1
  • Tree
  • List 78
  • Changed 4
  • Source Changed 4
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Build 5528
  • ae75f1dc on github
  • Prev Job for on v3.dev (##5526.1)
  • Next Job for on v3.dev (##5529.1)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc