[ https://issues.apache.org/jira/browse/IGNITE-7442?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dmitriy Pavlov updated IGNITE-7442: ----------------------------------- Fix Version/s: (was: 2.6) 2.7 > Data load hangs with SQL on-heap cache enabled > ---------------------------------------------- > > Key: IGNITE-7442 > URL: https://issues.apache.org/jira/browse/IGNITE-7442 > Project: Ignite > Issue Type: Bug > Components: sql > Affects Versions: 2.4 > Reporter: Mikhail Cherkasov > Assignee: Vladimir Ozerov > Priority: Major > Fix For: 2.7 > > > The user uses putAll to load data into a cache, it loads data to Atomic cache > and all keys have unique values, so there can not be a deadlock due to key > order, but to be 200% sure about this, the user also uses TreeMap. > > In logs I can see 68 messages about pool starvation for the same thread: > > at o.a.i.i.processors.query.h2.database.H2Tree.compare(H2Tree.java:206) > at o.a.i.i.processors.query.h2.database.H2Tree.compare(H2Tree.java:44) > at > o.a.i.i.processors.cache.persistence.tree.BPlusTree.compare(BPlusTree.java:4359) > at > o.a.i.i.processors.cache.persistence.tree.BPlusTree.findInsertionPoint(BPlusTree.java:4279) > at > o.a.i.i.processors.cache.persistence.tree.BPlusTree.access$1500(BPlusTree.java:81) > at > o.a.i.i.processors.cache.persistence.tree.BPlusTree$Search.run0(BPlusTree.java:261) > at > o.a.i.i.processors.cache.persistence.tree.BPlusTree$GetPageHandler.run(BPlusTree.java:4697) > at > o.a.i.i.processors.cache.persistence.tree.BPlusTree$GetPageHandler.run(BPlusTree.java:4682) > at > o.a.i.i.processors.cache.persistence.tree.util.PageHandler.readPage(PageHandler.java:158) > at > o.a.i.i.processors.cache.persistence.DataStructure.read(DataStructure.java:319) > at > o.a.i.i.processors.cache.persistence.tree.BPlusTree.putDown(BPlusTree.java:2254) > at > o.a.i.i.processors.cache.persistence.tree.BPlusTree.putDown(BPlusTree.java:2266) > at > o.a.i.i.processors.cache.persistence.tree.BPlusTree.doPut(BPlusTree.java:2006) > at > o.a.i.i.processors.cache.persistence.tree.BPlusTree.put(BPlusTree.java:1977) > at o.a.i.i.processors.query.h2.database.H2TreeIndex.put(H2TreeIndex.java:220) > at > o.a.i.i.processors.query.h2.opt.GridH2Table.addToIndex(GridH2Table.java:568) > at o.a.i.i.processors.query.h2.opt.GridH2Table.doUpdate(GridH2Table.java:516) > at o.a.i.i.processors.query.h2.opt.GridH2Table.update(GridH2Table.java:425) > at > o.a.i.i.processors.query.h2.IgniteH2Indexing.store(IgniteH2Indexing.java:566) > at > o.a.i.i.processors.query.GridQueryProcessor.store(GridQueryProcessor.java:1731) > at > o.a.i.i.processors.cache.query.GridCacheQueryManager.store(GridCacheQueryManager.java:418) > at > o.a.i.i.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.finishUpdate(IgniteCacheOffheapManagerImpl.java:1363) > at > o.a.i.i.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.invoke(IgniteCacheOffheapManagerImpl.java:1218) > at > o.a.i.i.processors.cache.IgniteCacheOffheapManagerImpl.invoke(IgniteCacheOffheapManagerImpl.java:352) > at > o.a.i.i.processors.cache.GridCacheMapEntry.innerUpdate(GridCacheMapEntry.java:1693) > at > o.a.i.i.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.processDhtAtomicUpdateRequest(GridDhtAtomicCache.java:3222) > > A completed number always is the same: > Completed: 1826527 > > and furthermore, thread always has a runnable state. So it's in a runnable > state for 30 minutes. > > So looks like it was looping somewhere inside: > o.a.i.i.processors.cache.persistence.tree.BPlusTree.putDown > method. > The issue can be reproduced only with SQL on heap cache enabled. > -- This message was sent by Atlassian JIRA (v7.6.3#76005)