[jira] [Commented] (IGNITE-2190) ScanQuery without a filter triggers object's deserialization on the server side
[ https://issues.apache.org/jira/browse/IGNITE-2190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16100714#comment-16100714 ] Dmitriy Pavlov commented on IGNITE-2190: Hi, [~NIzhikov], ok, thank you for clarification > 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, 2.0 >Reporter: Denis Magda >Assignee: Nikolay Izhikov >Priority: Critical > Labels: newbie > Fix For: 2.2 > > 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] > 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
[jira] [Commented] (IGNITE-2190) ScanQuery without a filter triggers object's deserialization on the server side
[ https://issues.apache.org/jira/browse/IGNITE-2190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16100670#comment-16100670 ] Nikolay Izhikov commented on IGNITE-2190: - Hi, [~dpavlov]. As far as I can understand we are waiting to [~avinogradov] merge my patch into master. No review from Vladimir is required. > 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, 2.0 >Reporter: Denis Magda >Assignee: Nikolay Izhikov >Priority: Critical > Labels: newbie > Fix For: 2.2 > > 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] > 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
[jira] [Commented] (IGNITE-2190) ScanQuery without a filter triggers object's deserialization on the server side
[ https://issues.apache.org/jira/browse/IGNITE-2190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16100435#comment-16100435 ] Dmitriy Pavlov commented on IGNITE-2190: Hi, are we waiting of review from [~vozerov] now? > 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, 2.0 >Reporter: Denis Magda >Assignee: Nikolay Izhikov >Priority: Critical > Labels: newbie > Fix For: 2.2 > > 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] > 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
[jira] [Commented] (IGNITE-2190) ScanQuery without a filter triggers object's deserialization on the server side
[ https://issues.apache.org/jira/browse/IGNITE-2190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16097543#comment-16097543 ] Nikolay Izhikov commented on IGNITE-2190: - TC after merge with latest master - http://ci.ignite.apache.org/viewModification.html?modId=252010=false=1=vcsModificationBuilds > 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, 2.0 >Reporter: Denis Magda >Assignee: Nikolay Izhikov >Priority: Critical > Labels: newbie > Fix For: 2.2 > > 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] > 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
[jira] [Commented] (IGNITE-2190) ScanQuery without a filter triggers object's deserialization on the server side
[ https://issues.apache.org/jira/browse/IGNITE-2190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16086982#comment-16086982 ] Nikolay Izhikov commented on IGNITE-2190: - Rerun tests because of changes in master that affects my PR PR - https://github.com/apache/ignite/pull/2256 Tests - http://ci.ignite.apache.org/viewModification.html?modId=245157=false=1=vcsModificationBuilds Upsource - http://reviews.ignite.apache.org/ignite/review/IGNT-CR-224 > 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, 2.0 >Reporter: Denis Magda >Assignee: Nikolay Izhikov >Priority: Critical > Labels: newbie > Fix For: 2.2 > > 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] > 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) >
[jira] [Commented] (IGNITE-2190) ScanQuery without a filter triggers object's deserialization on the server side
[ https://issues.apache.org/jira/browse/IGNITE-2190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16082405#comment-16082405 ] Nikolay Izhikov commented on IGNITE-2190: - [~vozerov] Can you review my pull request? PR - https://github.com/apache/ignite/pull/2256 Tests - http://ci.ignite.apache.org/viewModification.html?modId=239462=false=1=vcsModificationBuilds Upsource - http://reviews.ignite.apache.org/ignite/review/IGNT-CR-224 > 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, 2.0 >Reporter: Denis Magda >Assignee: Nikolay Izhikov >Priority: Critical > Labels: newbie > Fix For: 2.2 > > 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] > 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
[jira] [Commented] (IGNITE-2190) ScanQuery without a filter triggers object's deserialization on the server side
[ https://issues.apache.org/jira/browse/IGNITE-2190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16082400#comment-16082400 ] Nikolay Izhikov commented on IGNITE-2190: - [~avinogradov] Done! > 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, 2.0 >Reporter: Denis Magda >Assignee: Nikolay Izhikov >Priority: Critical > Labels: newbie > Fix For: 2.2 > > 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] > 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
[jira] [Commented] (IGNITE-2190) ScanQuery without a filter triggers object's deserialization on the server side
[ https://issues.apache.org/jira/browse/IGNITE-2190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16082131#comment-16082131 ] Anton Vinogradov commented on IGNITE-2190: -- [~NIzhikov], Let's use GridLogThrottle to prevent warning garbage at logs. > 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, 2.0 >Reporter: Denis Magda >Assignee: Nikolay Izhikov >Priority: Critical > Labels: newbie > Fix For: 2.2 > > 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] > 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
[jira] [Commented] (IGNITE-2190) ScanQuery without a filter triggers object's deserialization on the server side
[ https://issues.apache.org/jira/browse/IGNITE-2190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16080682#comment-16080682 ] Anton Vinogradov commented on IGNITE-2190: -- [~NIzhikov], Looks good. See my minor comment at review. BTW, did you check TC failures? > 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, 2.0 >Reporter: Denis Magda >Assignee: Nikolay Izhikov >Priority: Critical > Labels: newbie > Fix For: 2.2 > > 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] > 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
[jira] [Commented] (IGNITE-2190) ScanQuery without a filter triggers object's deserialization on the server side
[ https://issues.apache.org/jira/browse/IGNITE-2190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16077990#comment-16077990 ] Nikolay Izhikov commented on IGNITE-2190: - PR - https://github.com/apache/ignite/pull/2256 Tests - http://ci.ignite.apache.org/viewModification.html?modId=239462=false=1=vcsModificationBuilds > 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] > 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
[jira] [Commented] (IGNITE-2190) ScanQuery without a filter triggers object's deserialization on the server side
[ https://issues.apache.org/jira/browse/IGNITE-2190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16077659#comment-16077659 ] Nikolay Izhikov commented on IGNITE-2190: - [~avinogradov] > It looks like you should use withKeepBinary() in case you want to scan with > predicate. Yes I should. According to documentation one should use BinaryMarshaller and keepBinary() together - https://apacheignite.readme.io/docs/binary-marshaller Still ClassNotFoundException can be confusing for a newcomer. I think we have to add fix suggestion for user who catch ClassNotFoundException with BinaryMarshaller and keepBinary=false Is this sounds useful? {noformat} Suggestion for the cause of ClassNotFoundException To disable, set -DIGNITE_QUIET=true ^-- Ignite configured to use BinaryMarshaller but keepBinary is false for request ^-- Server node need to load definition of data classes. It can be reason of ClassNotFoundException(consider IgniteCache.withKeepBinary to fix) Refer this page for detailed information: https://apacheignite.readme.io/docs/binary-marshaller {noformat} > 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] > 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 >
[jira] [Commented] (IGNITE-2190) ScanQuery without a filter triggers object's deserialization on the server side
[ https://issues.apache.org/jira/browse/IGNITE-2190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16076474#comment-16076474 ] Anton Vinogradov commented on IGNITE-2190: -- [~NIzhikov], It looks like you should use withKeepBinary() in case you want to scan with predicate. > 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] > 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)
[jira] [Commented] (IGNITE-2190) ScanQuery without a filter triggers object's deserialization on the server side
[ https://issues.apache.org/jira/browse/IGNITE-2190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16076434#comment-16076434 ] Nikolay Izhikov commented on IGNITE-2190: - [~avinogradov] OK. I will fix {{testEmptyScan}} issue in that way. But what about {{testScanWithPredicate}}? Is test-case incorrect? Seems like we can't use BinaryMarshaller and ScanQuery without explicit {{withKeepBinary()}} It described in documentation \[1\] but can be confusing for a newcomer. May be we need to add some kind of warning when executing requests with keepBinary=false for a Ignite configured with BinaryMarshaller? Or detailed explanation of ClassNotFoundException for a specific case? \[1\] https://apacheignite.readme.io/docs/binary-marshaller > 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] > 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 >
[jira] [Commented] (IGNITE-2190) ScanQuery without a filter triggers object's deserialization on the server side
[ https://issues.apache.org/jira/browse/IGNITE-2190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16076367#comment-16076367 ] Anton Vinogradov commented on IGNITE-2190: -- [~NIzhikov], Seems we can check that GridEventStorageManager -> lsnrs.get(evt.type()) is not null before unwrapBinaryIfNeeded(), this will be some kind of optimization and should solve issue. > 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] > 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
[jira] [Commented] (IGNITE-2190) ScanQuery without a filter triggers object's deserialization on the server side
[ https://issues.apache.org/jira/browse/IGNITE-2190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16076000#comment-16076000 ] Nikolay Izhikov commented on IGNITE-2190: - [~avinogradov] > Is it possible to send event without unmarshalling Yes, It possible. {{cache.withKeepBinary()}} make keepBinary flag true for all type of requests. Values doesn't unwrap on remote nodes when keepBinary=true. > do not unmarshal in case no one subscribed? Current implementation doesn't check if there is any listeners when unwrapping data for a event. I think such check would be useful. But it doesn't help for a {{testScanWithPredicate}} from my test-case in previous post. Because data would be unmarshalled for a {{IgniteBiPredicate.apply}} call > 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] > 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 >
[jira] [Commented] (IGNITE-2190) ScanQuery without a filter triggers object's deserialization on the server side
[ https://issues.apache.org/jira/browse/IGNITE-2190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16074925#comment-16074925 ] Anton Vinogradov commented on IGNITE-2190: -- [~NIzhikov], Is it possible to send event without unmarshalling and/or do not unmarshal in case no one subscribed? > 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] > 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
[jira] [Commented] (IGNITE-2190) ScanQuery without a filter triggers object's deserialization on the server side
[ https://issues.apache.org/jira/browse/IGNITE-2190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16074916#comment-16074916 ] Nikolay Tikhonov commented on IGNITE-2190: -- [~avinogradov], Are sure for this case needed to deserialize this value? If nobody subscribe this event might be make sense to doesn't unmarshal a value. What do you think about it? > 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] > 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
[jira] [Commented] (IGNITE-2190) ScanQuery without a filter triggers object's deserialization on the server side
[ https://issues.apache.org/jira/browse/IGNITE-2190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16074764#comment-16074764 ] Anton Vinogradov commented on IGNITE-2190: -- [~vozerov], Please have a look. Seems there is no issue here. > 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] > 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
[jira] [Commented] (IGNITE-2190) ScanQuery without a filter triggers object's deserialization on the server side
[ https://issues.apache.org/jira/browse/IGNITE-2190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16074370#comment-16074370 ] Nikolay Izhikov commented on IGNITE-2190: - Hello. Some conclusions about this issue: 1. With BinaryMarshaller keepBinary value is false for all types of requests from client node to server node. One can change default behavior with IgniteCache.withKeepBinary call. 2. If we using default configuration from test framework(i.e. IncludeEventTypes = EventType.EVTS_ALL) server node try to unwrap BinaryObject when executing ScanQuery. for recording event EVT_CACHE_QUERY_OBJECT_READ. This leads to ClassNotFoundException on server node. How should I fix this issue? Test to reproduce Exception: {code:java} package org.apache.ignite.internal.processors.cache; import org.apache.ignite.configuration.IgniteConfiguration; import org.apache.ignite.events.EventType; public class IgniteCacheBinaryObjectsScanSelf2Test extends IgniteCacheBinaryObjectsScanSelfTest { /** {@inheritDoc} */ @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception { IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName); cfg.setIncludeEventTypes(EventType.EVTS_ALL); return cfg; } } {code} {noformat} javax.cache.CacheException: class org.apache.ignite.IgniteCheckedException: Query execution failed: GridCacheQueryBean [qry=GridCacheQueryAdapter [type=SCAN, clsName=null, clause=null, filter=null, transform=null, part=null, incMeta=false, metrics=GridCacheQueryMetricsAdapter [minTime=9223372036854775807, maxTime=0, sumTime=0, avgTime=0.0, execs=0, completed=0, fails=0], pageSize=1024, timeout=0, keepAll=true, incBackups=false, dedup=false, prj=null, keepBinary=false, subjId=9f0a83b8-6ce1-4b71-a374-b81bf107f006, taskHash=0], rdc=null, trans=null] at org.apache.ignite.internal.processors.cache.GridCacheUtils.convertToCacheException(GridCacheUtils.java:1312) at org.apache.ignite.internal.processors.cache.query.GridCacheQueryFutureAdapter.next(GridCacheQueryFutureAdapter.java:171) at org.apache.ignite.internal.processors.cache.query.GridCacheDistributedQueryManager$5.onHasNext(GridCacheDistributedQueryManager.java:635) at org.apache.ignite.internal.util.GridCloseableIteratorAdapter.hasNextX(GridCloseableIteratorAdapter.java:53) at org.apache.ignite.internal.processors.cache.IgniteCacheProxy$1$1.onHasNext(IgniteCacheProxy.java:579) at org.apache.ignite.internal.util.GridCloseableIteratorAdapter.hasNextX(GridCloseableIteratorAdapter.java:53) at org.apache.ignite.internal.util.lang.GridIteratorAdapter.hasNext(GridIteratorAdapter.java:45) at org.apache.ignite.internal.processors.cache.QueryCursorImpl.getAll(QueryCursorImpl.java:114) at org.apache.ignite.internal.processors.cache.IgniteCacheBinaryObjectsScanSelfTest.testScanNoClasses(IgniteCacheBinaryObjectsScanSelfTest.java:123) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at junit.framework.TestCase.runTest(TestCase.java:176) at org.apache.ignite.testframework.junits.GridAbstractTest.runTestInternal(GridAbstractTest.java:1997) at org.apache.ignite.testframework.junits.GridAbstractTest.access$000(GridAbstractTest.java:132) at org.apache.ignite.testframework.junits.GridAbstractTest$5.run(GridAbstractTest.java:1912) at java.lang.Thread.run(Thread.java:745) Caused by: class org.apache.ignite.IgniteCheckedException: Query execution failed: GridCacheQueryBean [qry=GridCacheQueryAdapter [type=SCAN, clsName=null, clause=null, filter=null, transform=null, part=null, incMeta=false, metrics=GridCacheQueryMetricsAdapter [minTime=9223372036854775807, maxTime=0, sumTime=0, avgTime=0.0, execs=0, completed=0, fails=0], pageSize=1024, timeout=0, keepAll=true, incBackups=false, dedup=false, prj=null, keepBinary=false, subjId=9f0a83b8-6ce1-4b71-a374-b81bf107f006, taskHash=0], rdc=null, trans=null] at org.apache.ignite.internal.processors.cache.query.GridCacheQueryFutureAdapter.checkError(GridCacheQueryFutureAdapter.java:257) at org.apache.ignite.internal.processors.cache.query.GridCacheQueryFutureAdapter.internalIterator(GridCacheQueryFutureAdapter.java:315) at org.apache.ignite.internal.processors.cache.query.GridCacheQueryFutureAdapter.next(GridCacheQueryFutureAdapter.java:161) ... 16 more Caused by: class org.apache.ignite.IgniteCheckedException: Failed to execute query on node [query=GridCacheQueryBean [qry=GridCacheQueryAdapter [type=SCAN, clsName=null, clause=null, filter=null,
[jira] [Commented] (IGNITE-2190) ScanQuery without a filter triggers object's deserialization on the server side
[ https://issues.apache.org/jira/browse/IGNITE-2190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16013641#comment-16013641 ] Nikolay Izhikov commented on IGNITE-2190: - Hi. I investigate this issue. Here is result; # Attached ScanQueryBug runs OK on 2.0.0 release. So bug seems not reproducible # I wrote test to make sure bug is not reproducible - https://github.com/nizhikov/ignite/pull/2 # Test succeed with OptimizedMarshaller # Test fails with BinaryMarshaller. Should I fix BinaryMarshaller is this issue or open another? Here is stack trace: {noformat} [09:05:43,846][ERROR][main][root] Test failed. javax.cache.CacheException: class org.apache.ignite.IgniteCheckedException: Query execution failed: GridCacheQueryBean [qry=GridCacheQueryAdapter [type=SCAN, clsName=null, clause=null, filter=null, transform=null, part=null, incMeta=false, metrics=GridCacheQueryMetricsAdapter [minTime=9223372036854775807, maxTime=0, sumTime=0, avgTime=0.0, execs=0, completed=0, fails=0], pageSize=1024, timeout=0, keepAll=true, incBackups=false, dedup=false, prj=null, keepBinary=false, subjId=22821e9d-92df-43ce-8b85-3fed3c53f8b9, taskHash=0], rdc=null, trans=null] at org.apache.ignite.internal.processors.cache.GridCacheUtils.convertToCacheException(GridCacheUtils.java:1421) at org.apache.ignite.internal.processors.cache.query.GridCacheQueryFutureAdapter.next(GridCacheQueryFutureAdapter.java:171) at org.apache.ignite.internal.processors.cache.query.GridCacheDistributedQueryManager$5.onHasNext(GridCacheDistributedQueryManager.java:635) at org.apache.ignite.internal.util.GridCloseableIteratorAdapter.hasNextX(GridCloseableIteratorAdapter.java:53) at org.apache.ignite.internal.processors.cache.IgniteCacheProxy$1$1.onHasNext(IgniteCacheProxy.java:571) at org.apache.ignite.internal.util.GridCloseableIteratorAdapter.hasNextX(GridCloseableIteratorAdapter.java:53) at org.apache.ignite.internal.util.lang.GridIteratorAdapter.hasNext(GridIteratorAdapter.java:45) at org.apache.ignite.internal.processors.cache.QueryCursorImpl.getAll(QueryCursorImpl.java:113) at org.apache.ignite.internal.processors.cache.query.GridCacheEmptyScanQueryTest.runEmptyScanQuery(GridCacheEmptyScanQueryTest.java:68) at org.apache.ignite.internal.processors.cache.query.GridCacheEmptyScanQueryTest.testEmptyScanQueryWithBinaryMarshaller(GridCacheEmptyScanQueryTest.java:49) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at junit.framework.TestCase.runTest(TestCase.java:176) at org.apache.ignite.testframework.junits.GridAbstractTest.runTestInternal(GridAbstractTest.java:1935) at org.apache.ignite.testframework.junits.GridAbstractTest.access$000(GridAbstractTest.java:125) at org.apache.ignite.testframework.junits.GridAbstractTest$5.run(GridAbstractTest.java:1850) at java.lang.Thread.run(Thread.java:745) Caused by: class org.apache.ignite.IgniteCheckedException: Query execution failed: GridCacheQueryBean [qry=GridCacheQueryAdapter [type=SCAN, clsName=null, clause=null, filter=null, transform=null, part=null, incMeta=false, metrics=GridCacheQueryMetricsAdapter [minTime=9223372036854775807, maxTime=0, sumTime=0, avgTime=0.0, execs=0, completed=0, fails=0], pageSize=1024, timeout=0, keepAll=true, incBackups=false, dedup=false, prj=null, keepBinary=false, subjId=22821e9d-92df-43ce-8b85-3fed3c53f8b9, taskHash=0], rdc=null, trans=null] at org.apache.ignite.internal.processors.cache.query.GridCacheQueryFutureAdapter.checkError(GridCacheQueryFutureAdapter.java:257) at org.apache.ignite.internal.processors.cache.query.GridCacheQueryFutureAdapter.internalIterator(GridCacheQueryFutureAdapter.java:315) at org.apache.ignite.internal.processors.cache.query.GridCacheQueryFutureAdapter.next(GridCacheQueryFutureAdapter.java:161) ... 17 more Caused by: class org.apache.ignite.IgniteCheckedException: Failed to execute query on node [query=GridCacheQueryBean [qry=GridCacheQueryAdapter [type=SCAN, clsName=null, clause=null, filter=null, transform=null, part=null, incMeta=false, metrics=GridCacheQueryMetricsAdapter [minTime=9223372036854775807, maxTime=0, sumTime=0, avgTime=0.0, execs=0, completed=0, fails=0], pageSize=1024, timeout=0, keepAll=true, incBackups=false, dedup=false, prj=null, keepBinary=false, subjId=22821e9d-92df-43ce-8b85-3fed3c53f8b9, taskHash=0], rdc=null, trans=null], nodeId=96a2b467-00fc-4fb0-befc-6caa54dbc9d2] at org.apache.ignite.internal.processors.cache.query.GridCacheQueryFutureAdapter.onPage(GridCacheQueryFutureAdapter.java:380)
[jira] [Commented] (IGNITE-2190) ScanQuery without a filter triggers object's deserialization on the server side
[ https://issues.apache.org/jira/browse/IGNITE-2190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=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] > 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
[jira] [Commented] (IGNITE-2190) ScanQuery without a filter triggers object's deserialization on the server side
[ https://issues.apache.org/jira/browse/IGNITE-2190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16011795#comment-16011795 ] ASF GitHub Bot commented on IGNITE-2190: GitHub user nizhikov opened a pull request: https://github.com/apache/ignite/pull/1948 IGNITE-2190: * Added GridCacheEmptyScanQueryTest to reproduce bug described in task * Test succeed for a OptimizedMarshaller but fails for a BinaryMarshaller * Minor fixes in IgniteProcessProxy and GridAbstractTest for a possibility to modify separate jvm grid classpath * Added ignite-2190-1.0.jar to binary dependencies(source can be obtained from https://github.com/nizhikov/ignite-2190-binary) You can merge this pull request into a Git repository by running: $ git pull https://github.com/nizhikov/ignite ignite-2190 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/ignite/pull/1948.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #1948 commit 1857a95185266e256b269897e577cae18db7a577 Author: Ижиков Николай ВладимировичDate: 2017-05-16T05:57:02Z IGNITE-2190: * Added GridCacheEmptyScanQueryTest to reproduce bug described in task * Test succeed for a OptimizedMarshaller but fails for a BinaryMarshaller * Minor fixes in IgniteProcessProxy and GridAbstractTest for a possibility to modify separate jvm grid classpath * Added ignite-2190-1.0.jar to binary dependencies(source can be obtained from https://github.com/nizhikov/ignite-2190-binary) > 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] > 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 >
[jira] [Commented] (IGNITE-2190) ScanQuery without a filter triggers object's deserialization on the server side
[ https://issues.apache.org/jira/browse/IGNITE-2190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15066206#comment-15066206 ] Denis Magda commented on IGNITE-2190: - The issue is still reproduced even after IGNITE-2178 has been fixed. Attached a reproducible example that was executing again ignite-1.5 branch. > 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 >Priority: Critical > Labels: important > Fix For: 1.6 > > > 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] > 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)