Details
-
Bug
-
Status: Resolved
-
Critical
-
Resolution: Fixed
-
2.8
-
None
Description
When a checkpoint is triggered, we need some amount of page memory to store pages list on-heap cache.
If data region is too small, a checkpoint is triggered by "too many dirty pages" reason and pages list cache is rather big, we can get IgniteOutOfMemoryException.
Reproducer:
@Override protected IgniteConfiguration getConfiguration(String name) throws Exception { IgniteConfiguration cfg = super.getConfiguration(name); cfg.setDataStorageConfiguration(new DataStorageConfiguration() .setDefaultDataRegionConfiguration(new DataRegionConfiguration() .setPersistenceEnabled(true) .setMaxSize(50 * 1024 * 1024) )); return cfg; } @Test public void testUpdatesNotFittingIntoMemoryRegion() throws Exception { IgniteEx ignite = startGrid(0); ignite.cluster().active(true); ignite.getOrCreateCache(DEFAULT_CACHE_NAME); try (IgniteDataStreamer<Object, Object> streamer = ignite.dataStreamer(DEFAULT_CACHE_NAME)) { for (int i = 0; i < 100_000; i++) streamer.addData(i, new byte[i % 2048]); } }
Attachments
Attachments
Issue Links
- causes
-
IGNITE-12562 FreeListCachingTest.testPageListCacheLimit failing in Disk Page Compressions suite
- Resolved
- is caused by
-
IGNITE-6930 Optionally to do not write free list updates to WAL
- Resolved
- links to