[ https://issues.apache.org/jira/browse/IGNITE-2190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16012154#comment-16012154 ]
ASF GitHub Bot commented on IGNITE-2190: ---------------------------------------- Github user nizhikov closed the pull request at: https://github.com/apache/ignite/pull/1948 > ScanQuery without a filter triggers object's deserialization on the server > side > ------------------------------------------------------------------------------- > > Key: IGNITE-2190 > URL: https://issues.apache.org/jira/browse/IGNITE-2190 > Project: Ignite > Issue Type: Bug > Components: cache > Affects Versions: ignite-1.4 > Reporter: Denis Magda > Assignee: Nikolay Izhikov > Priority: Critical > Labels: newbie > Fix For: 2.1 > > Attachments: ScanQueryBug.java > > > The issue is reproduced on version 1.4 where legacy PortableMarshaller is > used. However, I'm quiet sure that the issue happens when BinaryMarshaller is > used as well in 1.5. > 1) Start a server using ignite.sh/bat > 2) Create a simple app, that uses binary or portable marshaller, creates a > cache dynamically and executes a ScanQuery like below > {{int size=employees1.query(new ScanQuery()).getAll().size();}} > 3) As you see the query doesn't use any filters. However on the server side > some filter is still being checked > {{org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$5.checkPredicate(GridCacheQueryManager.java:963)}} > which makes the server to deserialize a value. > According to the stack trace there is some internal filter that triggered > checkPredicate function - > filter=o.a.i.i.processors.cache.IgniteCacheProxy$1@3224ff7b. > {noformat} > [11:05:22,725][SEVERE][ignite-#25%sys-null%][GridCacheDistributedQueryManager] > <testCache> Failed to run query [qry=GridCacheQueryInfo [loc=false, > trans=null, rdc=null, qry=GridCacheQueryAdapter [type=SCAN, clsName=null, > clause=null, filter=o.a.i.i.processors.cache.IgniteCacheProxy$1@3224ff7b, > part=null, incMeta=false, metrics=null, pageSize=1024, timeout=0, > keepAll=false, incBackups=false, dedup=false, prj=null, keepPortable=false, > subjId=c6aeb542-1693-4b5f-89db-96db50e3435f, taskHash=0], locFut=null, > sndId=c6aeb542-1693-4b5f-89db-96db50e3435f, reqId=14, incMeta=false, > all=false], node=209c237a-9e33-4d05-abe4-bbc14f93c439] > class org.apache.ignite.IgniteCheckedException: > **********************.SubMessageB > at org.apache.ignite.internal.util.IgniteUtils.cast(IgniteUtils.java:6979) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.get0(GridFutureAdapter.java:166) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.get(GridFutureAdapter.java:115) > at > org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$CachedResult.iterator(GridCacheQueryManager.java:2784) > at > org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager.runQuery(GridCacheQueryManager.java:1376) > at > org.apache.ignite.internal.processors.cache.query.GridCacheDistributedQueryManager.processQueryRequest(GridCacheDistributedQueryManager.java:226) > at > org.apache.ignite.internal.processors.cache.query.GridCacheDistributedQueryManager$2.apply(GridCacheDistributedQueryManager.java:105) > at > org.apache.ignite.internal.processors.cache.query.GridCacheDistributedQueryManager$2.apply(GridCacheDistributedQueryManager.java:103) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager.processMessage(GridCacheIoManager.java:580) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:280) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:198) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$000(GridCacheIoManager.java:77) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:160) > at > org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:811) > at > org.apache.ignite.internal.managers.communication.GridIoManager.access$1500(GridIoManager.java:106) > at > org.apache.ignite.internal.managers.communication.GridIoManager$5.run(GridIoManager.java:774) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > at java.lang.Thread.run(Thread.java:745) > Caused by: java.lang.ClassNotFoundException: > **********************.SubMessageB > at java.net.URLClassLoader.findClass(URLClassLoader.java:381) > at java.lang.ClassLoader.loadClass(ClassLoader.java:424) > at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) > at java.lang.ClassLoader.loadClass(ClassLoader.java:357) > at java.lang.Class.forName0(Native Method) > at java.lang.Class.forName(Class.java:348) > at org.apache.ignite.internal.util.IgniteUtils.forName(IgniteUtils.java:8137) > at > org.apache.ignite.internal.MarshallerContextAdapter.getClass(MarshallerContextAdapter.java:185) > at > org.gridgain.grid.internal.util.portable.GridPortableContext.descriptorForTypeId(GridPortableContext.java:510) > at > org.gridgain.grid.internal.util.portable.GridPortableReaderImpl.deserialize(GridPortableReaderImpl.java:2092) > at > org.gridgain.grid.internal.util.portable.GridPortableObjectImpl.deserialize(GridPortableObjectImpl.java:262) > at > org.gridgain.grid.internal.processors.portable.CacheObjectEntContext.unwrapPortable(CacheObjectEntContext.java:165) > at > org.gridgain.grid.internal.processors.portable.CacheObjectEntContext.unwrapPortableIfNeeded(CacheObjectEntContext.java:65) > at > org.apache.ignite.internal.processors.cache.GridCacheContext.unwrapPortableIfNeeded(GridCacheContext.java:1759) > at > org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$5.checkPredicate(GridCacheQueryManager.java:963) > at > org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$5.advance(GridCacheQueryManager.java:931) > at > org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$5.<init>(GridCacheQueryManager.java:876) > at > org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager.scanIterator(GridCacheQueryManager.java:831) > at > org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager.executeQuery(GridCacheQueryManager.java:595) > at > org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager.queryResult(GridCacheQueryManager.java:1673) > at > org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager.queryResult(GridCacheQueryManager.java:1640) > at > org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager.runQuery(GridCacheQueryManager.java:1371) > ... 14 more > [11:05:22,736][SEVERE][ignite-#25%sys-null%][GridCacheDistributedQueryManager] > <testCache> Failed to close iterator. > class org.apache.ignite.IgniteCheckedException: > ********************************.SubMessageB > at org.apache.ignite.internal.util.IgniteUtils.cast(IgniteUtils.java:6979) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.get0(GridFutureAdapter.java:166) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.get(GridFutureAdapter.java:115) > at > org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$CachedResult.closeIfNotShared(GridCacheQueryManager.java:2724) > at > org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager.removeQueryResult(GridCacheQueryManager.java:1707) > at > org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager.runQuery(GridCacheQueryManager.java:1594) > at > org.apache.ignite.internal.processors.cache.query.GridCacheDistributedQueryManager.processQueryRequest(GridCacheDistributedQueryManager.java:226) > at > org.apache.ignite.internal.processors.cache.query.GridCacheDistributedQueryManager$2.apply(GridCacheDistributedQueryManager.java:105) > at > org.apache.ignite.internal.processors.cache.query.GridCacheDistributedQueryManager$2.apply(GridCacheDistributedQueryManager.java:103) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager.processMessage(GridCacheIoManager.java:580) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:280) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:198) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$000(GridCacheIoManager.java:77) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:160) > at > org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:811) > at > org.apache.ignite.internal.managers.communication.GridIoManager.access$1500(GridIoManager.java:106) > at > org.apache.ignite.internal.managers.communication.GridIoManager$5.run(GridIoManager.java:774) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > at java.lang.Thread.run(Thread.java:745) > Caused by: java.lang.ClassNotFoundException: > ******************************.SubMessageB > at java.net.URLClassLoader.findClass(URLClassLoader.java:381) > at java.lang.ClassLoader.loadClass(ClassLoader.java:424) > at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) > at java.lang.ClassLoader.loadClass(ClassLoader.java:357) > at java.lang.Class.forName0(Native Method) > at java.lang.Class.forName(Class.java:348) > at org.apache.ignite.internal.util.IgniteUtils.forName(IgniteUtils.java:8137) > at > org.apache.ignite.internal.MarshallerContextAdapter.getClass(MarshallerContextAdapter.java:185) > at > org.gridgain.grid.internal.util.portable.GridPortableContext.descriptorForTypeId(GridPortableContext.java:510) > at > org.gridgain.grid.internal.util.portable.GridPortableReaderImpl.deserialize(GridPortableReaderImpl.java:2092) > at > org.gridgain.grid.internal.util.portable.GridPortableObjectImpl.deserialize(GridPortableObjectImpl.java:262) > at > org.gridgain.grid.internal.processors.portable.CacheObjectEntContext.unwrapPortable(CacheObjectEntContext.java:165) > at > org.gridgain.grid.internal.processors.portable.CacheObjectEntContext.unwrapPortableIfNeeded(CacheObjectEntContext.java:65) > at > org.apache.ignite.internal.processors.cache.GridCacheContext.unwrapPortableIfNeeded(GridCacheContext.java:1759) > at > org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$5.checkPredicate(GridCacheQueryManager.java:963) > at > org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$5.advance(GridCacheQueryManager.java:931) > at > org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$5.<init>(GridCacheQueryManager.java:876) > at > org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager.scanIterator(GridCacheQueryManager.java:831) > at > org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager.executeQuery(GridCacheQueryManager.java:595) > at > org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager.queryResult(GridCacheQueryManager.java:1673) > at > org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager.queryResult(GridCacheQueryManager.java:1640) > at > org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager.runQuery(GridCacheQueryManager.java:1371) > ... 14 more > ^C[11:05:50] Ignite node stopped OK [uptime=00:00:45:276] > {noformat} -- This message was sent by Atlassian JIRA (v6.3.15#6346)