| name | audit-feature-interaction |
| description | Analyze feature interaction pairs and triples for concurrent defects |
| context | fork |
| agent | auditor |
| disable-model-invocation | true |
Analyze the cache for defects arising from multiple features operating
simultaneously on the same entry.
Assume at least one feature interaction bug exists. If your analysis yields
zero findings, re-examine the top-priority pairs below — explain specifically
why no interleaving produces a bug.
Priority ranking (from confirmed historical bugs):
- Refresh + expiration (D+B) — most-bugged interaction historically
- Reference collection + any feature (C+*) — value reference visibility
- Async completion + any feature (F+*) — future lifecycle edge cases
- Eviction + weight change (A+H) — counter drift during transitions
Features:
A. Eviction (size/weight limit exceeded)
B. Expiration (afterAccess, afterWrite, variable)
C. Reference collection (weak key, weak value, soft value GC)
D. Refresh (automatic reload)
E. Loading (CacheLoader / computeIfAbsent)
F. Async completion (CompletableFuture values)
G. Listener notification (removal listener, eviction listener)
H. Weight change (Weigher returning different weight for new value)