Mikhail Cherkasov created IGNITE-7442:
-----------------------------------------

             Summary: 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
             Fix For: 2.5


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)

Reply via email to