ignite-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nikolay Izhikov (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (IGNITE-2190) ScanQuery without a filter triggers object's deserialization on the server side
Date Fri, 14 Jul 2017 07:35:00 GMT

    [ https://issues.apache.org/jira/browse/IGNITE-2190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=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&personal=false&init=1&tab=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] <testCache>
Failed to run query [qry=GridCacheQueryInfo [loc=false, trans=null, rdc=null, qry=GridCacheQueryAdapter
[type=SCAN, clsName=null, clause=null, filter=o.a.i.i.processors.cache.IgniteCacheProxy$1@3224ff7b,
part=null, incMeta=false, metrics=null, pageSize=1024, timeout=0, keepAll=false, incBackups=false,
dedup=false, prj=null, keepPortable=false, subjId=c6aeb542-1693-4b5f-89db-96db50e3435f, taskHash=0],
locFut=null, sndId=c6aeb542-1693-4b5f-89db-96db50e3435f, reqId=14, incMeta=false, all=false],
node=209c237a-9e33-4d05-abe4-bbc14f93c439]
> class org.apache.ignite.IgniteCheckedException: **********************.SubMessageB
> at org.apache.ignite.internal.util.IgniteUtils.cast(IgniteUtils.java:6979)
> at org.apache.ignite.internal.util.future.GridFutureAdapter.get0(GridFutureAdapter.java:166)
> at org.apache.ignite.internal.util.future.GridFutureAdapter.get(GridFutureAdapter.java:115)
> at org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$CachedResult.iterator(GridCacheQueryManager.java:2784)
> at org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager.runQuery(GridCacheQueryManager.java:1376)
> at org.apache.ignite.internal.processors.cache.query.GridCacheDistributedQueryManager.processQueryRequest(GridCacheDistributedQueryManager.java:226)
> at org.apache.ignite.internal.processors.cache.query.GridCacheDistributedQueryManager$2.apply(GridCacheDistributedQueryManager.java:105)
> at org.apache.ignite.internal.processors.cache.query.GridCacheDistributedQueryManager$2.apply(GridCacheDistributedQueryManager.java:103)
> at org.apache.ignite.internal.processors.cache.GridCacheIoManager.processMessage(GridCacheIoManager.java:580)
> at org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:280)
> at org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:198)
> at org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$000(GridCacheIoManager.java:77)
> at org.apache.ignite.internal.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:160)
> at org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:811)
> at org.apache.ignite.internal.managers.communication.GridIoManager.access$1500(GridIoManager.java:106)
> at org.apache.ignite.internal.managers.communication.GridIoManager$5.run(GridIoManager.java:774)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: java.lang.ClassNotFoundException: **********************.SubMessageB
> at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:348)
> at org.apache.ignite.internal.util.IgniteUtils.forName(IgniteUtils.java:8137)
> at org.apache.ignite.internal.MarshallerContextAdapter.getClass(MarshallerContextAdapter.java:185)
> at org.gridgain.grid.internal.util.portable.GridPortableContext.descriptorForTypeId(GridPortableContext.java:510)
> at org.gridgain.grid.internal.util.portable.GridPortableReaderImpl.deserialize(GridPortableReaderImpl.java:2092)
> at org.gridgain.grid.internal.util.portable.GridPortableObjectImpl.deserialize(GridPortableObjectImpl.java:262)
> at org.gridgain.grid.internal.processors.portable.CacheObjectEntContext.unwrapPortable(CacheObjectEntContext.java:165)
> at org.gridgain.grid.internal.processors.portable.CacheObjectEntContext.unwrapPortableIfNeeded(CacheObjectEntContext.java:65)
> at org.apache.ignite.internal.processors.cache.GridCacheContext.unwrapPortableIfNeeded(GridCacheContext.java:1759)
> at org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$5.checkPredicate(GridCacheQueryManager.java:963)
> at org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$5.advance(GridCacheQueryManager.java:931)
> at org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$5.<init>(GridCacheQueryManager.java:876)
> at org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager.scanIterator(GridCacheQueryManager.java:831)
> at org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager.executeQuery(GridCacheQueryManager.java:595)
> at org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager.queryResult(GridCacheQueryManager.java:1673)
> at org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager.queryResult(GridCacheQueryManager.java:1640)
> at org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager.runQuery(GridCacheQueryManager.java:1371)
> ... 14 more
> [11:05:22,736][SEVERE][ignite-#25%sys-null%][GridCacheDistributedQueryManager] <testCache>
Failed to close iterator.
> class org.apache.ignite.IgniteCheckedException: ********************************.SubMessageB
> at org.apache.ignite.internal.util.IgniteUtils.cast(IgniteUtils.java:6979)
> at org.apache.ignite.internal.util.future.GridFutureAdapter.get0(GridFutureAdapter.java:166)
> at org.apache.ignite.internal.util.future.GridFutureAdapter.get(GridFutureAdapter.java:115)
> at org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$CachedResult.closeIfNotShared(GridCacheQueryManager.java:2724)
> at org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager.removeQueryResult(GridCacheQueryManager.java:1707)
> at org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager.runQuery(GridCacheQueryManager.java:1594)
> at org.apache.ignite.internal.processors.cache.query.GridCacheDistributedQueryManager.processQueryRequest(GridCacheDistributedQueryManager.java:226)
> at org.apache.ignite.internal.processors.cache.query.GridCacheDistributedQueryManager$2.apply(GridCacheDistributedQueryManager.java:105)
> at org.apache.ignite.internal.processors.cache.query.GridCacheDistributedQueryManager$2.apply(GridCacheDistributedQueryManager.java:103)
> at org.apache.ignite.internal.processors.cache.GridCacheIoManager.processMessage(GridCacheIoManager.java:580)
> at org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:280)
> at org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:198)
> at org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$000(GridCacheIoManager.java:77)
> at org.apache.ignite.internal.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:160)
> at org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:811)
> at org.apache.ignite.internal.managers.communication.GridIoManager.access$1500(GridIoManager.java:106)
> at org.apache.ignite.internal.managers.communication.GridIoManager$5.run(GridIoManager.java:774)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: java.lang.ClassNotFoundException: ******************************.SubMessageB
> at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:348)
> at org.apache.ignite.internal.util.IgniteUtils.forName(IgniteUtils.java:8137)
> at org.apache.ignite.internal.MarshallerContextAdapter.getClass(MarshallerContextAdapter.java:185)
> at org.gridgain.grid.internal.util.portable.GridPortableContext.descriptorForTypeId(GridPortableContext.java:510)
> at org.gridgain.grid.internal.util.portable.GridPortableReaderImpl.deserialize(GridPortableReaderImpl.java:2092)
> at org.gridgain.grid.internal.util.portable.GridPortableObjectImpl.deserialize(GridPortableObjectImpl.java:262)
> at org.gridgain.grid.internal.processors.portable.CacheObjectEntContext.unwrapPortable(CacheObjectEntContext.java:165)
> at org.gridgain.grid.internal.processors.portable.CacheObjectEntContext.unwrapPortableIfNeeded(CacheObjectEntContext.java:65)
> at org.apache.ignite.internal.processors.cache.GridCacheContext.unwrapPortableIfNeeded(GridCacheContext.java:1759)
> at org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$5.checkPredicate(GridCacheQueryManager.java:963)
> at org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$5.advance(GridCacheQueryManager.java:931)
> at org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$5.<init>(GridCacheQueryManager.java:876)
> at org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager.scanIterator(GridCacheQueryManager.java:831)
> at org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager.executeQuery(GridCacheQueryManager.java:595)
> at org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager.queryResult(GridCacheQueryManager.java:1673)
> at org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager.queryResult(GridCacheQueryManager.java:1640)
> at org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager.runQuery(GridCacheQueryManager.java:1371)
> ... 14 more
> ^C[11:05:50] Ignite node stopped OK [uptime=00:00:45:276]
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message