Details
-
Bug
-
Resolution: Fixed
-
Major
-
2.0
-
Security Level: Public
-
None
Description
Hypothetically this can only happen not by a code bug per se but by a side effect of compiler optimization (so called Peephole Optimization). Very rarely though if possible at all. Highly optimized compiler can reorder or merge stillWarmingUp() function calls within ep engine's CouchKVStore::recordDbDump. In such case the logic of canceling data loading is broken thus the warmup continues to keep loading data even after the total memory use reaches the low water mark.
For correctness of the warmup logic, we may want to address this issue by replacing stillWarmingUp() call with isDegradedMode() or by making use of a volatile local variable.