Description
Considering below time sequence:
1. "entries.offer" is called during "storeData".
2. page saving thread comes in, and poll the entry. Then "entryMap.remove" is called. Nothing will be removed since entry has not been added to entryMap yet.
3. "entryMap.put" is called during "storeData".
The result is that entries in "entryMap" may never be removed, and the entryMap can increase infinitely.