-
Type: Bug
-
Resolution: Won't Fix
-
Priority: Minor - P4
-
None
-
Affects Version/s: None
-
Component/s: Not Applicable
-
5
-
StorEng - Defined Pipeline
This came out of WT-8880. The fields in conn->capacity could be read by another thread at any time, which is possibly an issue if we're in the middle of __capacity_config and we're halfway through setting various fields.
To be clear, I'm not sure this is guaranteed to be a problem - it might be that a torn write to the various capacities/thresholds is OK because they're used in a certain way (e.g. only on startup). That said, these three lines seem a bit suspect:
cap->threshold = ((cap->ckpt + cap->evict + cap->log) / 100) * WT_CAPACITY_PCT;
if (cap->threshold < WT_CAPACITY_MIN_THRESHOLD)
cap->threshold = WT_CAPACITY_MIN_THRESHOLD;
The scope of the ticket is to (1) identify whether this is a real problem and (2) fix it.