Aleksey Plekhanov created IGNITE-12530:
------------------------------------------
Summary: Pages list caching can cause IgniteOOME when checkpoint is triggered by "too many dirty pages" reason
Key: IGNITE-12530
URL:
https://issues.apache.org/jira/browse/IGNITE-12530 Project: Ignite
Issue Type: Bug
Affects Versions: 2.8
Reporter: Aleksey Plekhanov
Assignee: Aleksey Plekhanov
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:
{code:java}
@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]);
}
}
{code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)