[
https://issues.apache.org/jira/browse/IGNITE-12530?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Aleksey Plekhanov updated IGNITE-12530:
---------------------------------------
Fix Version/s: 2.8
> 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
> Components: persistence
> Affects Versions: 2.8
> Reporter: Aleksey Plekhanov
> Assignee: Aleksey Plekhanov
> Priority: Critical
> Fix For: 2.8, 2.9
>
> Attachments: screenshot-1.png, screenshot-2.png
>
> Time Spent: 1h 40m
> Remaining Estimate: 0h
>
> 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)