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

ben-manes / caffeine / #3371
100%

Build:
DEFAULT BRANCH: master
Ran 31 Oct 2022 04:38AM UTC
Jobs 1
Files 77
Run time 3s
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

pending completion
#3371

push

github-actions

ben-manes
Add logging when the cache detects that the key was modified

If the key was modified so that its equals/hashCode changed, then this
violation of the Map contract may cause non-deterministic behavior.

In previous versions a Cache.put could spin forever by assuming it had a
stale read and the removal was in-progress. However, if the entry was
evicted but could not be removed, this led to an infinite loop and the
cause was not described in the method comments so it does not communicate
the user's error.

The cache now logs or throws an exception when this corruption is detected
during map operations (clear, put, replace, remove, computes, eviction). The
put loop now optimistically spin waits up to a threshold before performing a
validation check on the entry through a computation. This way the common case
remains fast, it fails if an error is detected, and it deschedules if the
system is overloaded and was causing a delay for the removal to complete.

7424 of 7536 relevant lines covered (98.51%)

0.99 hits per line

Jobs
ID Job ID Ran Files Coverage
1 #3371.1 31 Oct 2022 04:38AM UTC 0
98.51
Source Files on build #3371
Detailed source file information is not available for this build.
  • Back to Repo
  • Build #3371
  • 9cd509c6 on github
  • Prev Build on master
  • Next Build on master
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