[ https://issues.apache.org/jira/browse/IGNITE-7756?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16377106#comment-16377106 ]
Nikolay Izhikov commented on IGNITE-7756: ----------------------------------------- Hello, [~vozerov]. Can you, please, take a look at my changes? It, literally, 1 line of production code. Upsource - https://reviews.ignite.apache.org/ignite/review/IGNT-CR-499 TC - https://ci.ignite.apache.org/viewLog.html?buildId=1108157& > Streamer fails if IgniteUuid is indexed > --------------------------------------- > > Key: IGNITE-7756 > URL: https://issues.apache.org/jira/browse/IGNITE-7756 > Project: Ignite > Issue Type: Bug > Components: streaming > Affects Versions: 2.3 > Reporter: Nikolay Izhikov > Assignee: Nikolay Izhikov > Priority: Minor > Labels: MakeTeamcityGreenAgain > Fix For: 2.5 > > > IgniteDataStreamer are failed to put data to the cache if IgniteUuid is > IndexedType. > Spark tests in IGNITE-7227 are failed because of this issue. > Reproducer: > {code:java} > public void testStreamer() throws Exception { > Ignite client = grid("client"); > CacheConfiguration ccfg = new CacheConfiguration("UUID_CACHE"); > ccfg.setIndexedTypes(IgniteUuid.class, String.class); > client.createCache(ccfg); > try(IgniteDataStreamer<IgniteUuid, String> cache = > client.dataStreamer("UUID_CACHE")) { > for(Integer i=0; i<2; i++) > cache.addData(IgniteUuid.randomUuid(), i.toString()); > } > } > {code} > Exception stack trace: > {noformat} > [23:43:35] (err) Failed to execute compound future reducer: > GridCompoundFuture [rdc=null, initFlag=1, lsnrCalls=0, done=false, > cancelled=false, err=null, futs=[true, true]][23:43:35] (err) Failed to > execute compound future reducer: GridCompoundFuture [rdc=null, initFlag=1, > lsnrCalls=0, done=false, cancelled=false, err=null, futs=[true, true]]class > org.apache.ignite.IgniteCheckedException: DataStreamer request failed > [node=57961924-82ec-4d56-81eb-1a4109a00000] > at > org.apache.ignite.internal.processors.datastreamer.DataStreamerImpl$Buffer.onResponse(DataStreamerImpl.java:1900) > at > org.apache.ignite.internal.processors.datastreamer.DataStreamerImpl$3.onMessage(DataStreamerImpl.java:344) > at > org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1554) > at > org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1182) > at > org.apache.ignite.internal.managers.communication.GridIoManager.access$4200(GridIoManager.java:125) > at > org.apache.ignite.internal.managers.communication.GridIoManager$9.run(GridIoManager.java:1089) > at > org.apache.ignite.internal.util.StripedExecutor$Stripe.run(StripedExecutor.java:499) > at java.lang.Thread.run(Thread.java:748) > Caused by: class org.apache.ignite.IgniteException: Failed to set initial > value for cache entry > at > org.apache.ignite.internal.processors.datastreamer.DataStreamerImpl$IsolatedUpdater.receive(DataStreamerImpl.java:2135) > at > org.apache.ignite.internal.processors.datastreamer.DataStreamerUpdateJob.call(DataStreamerUpdateJob.java:140) > at > org.apache.ignite.internal.processors.datastreamer.DataStreamProcessor.localUpdate(DataStreamProcessor.java:397) > at > org.apache.ignite.internal.processors.datastreamer.DataStreamProcessor.processRequest(DataStreamProcessor.java:302) > at > org.apache.ignite.internal.processors.datastreamer.DataStreamProcessor.access$000(DataStreamProcessor.java:59) > at > org.apache.ignite.internal.processors.datastreamer.DataStreamProcessor$1.onMessage(DataStreamProcessor.java:89) > ... 6 more > Caused by: class org.apache.ignite.IgniteCheckedException: Failed to update > index, incorrect key class [expCls=org.apache.ignite.lang.IgniteUuid, > actualCls=org.apache.ignite.internal.binary.BinaryObjectImpl] > at > org.apache.ignite.internal.processors.query.GridQueryProcessor.typeByValue(GridQueryProcessor.java:1954) > at > org.apache.ignite.internal.processors.query.GridQueryProcessor.store(GridQueryProcessor.java:1877) > at > org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager.store(GridCacheQueryManager.java:403) > at > org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.finishUpdate(IgniteCacheOffheapManagerImpl.java:1343) > at > org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.invoke(IgniteCacheOffheapManagerImpl.java:1207) > at > org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl.invoke(IgniteCacheOffheapManagerImpl.java:345) > at > org.apache.ignite.internal.processors.cache.GridCacheMapEntry.storeValue(GridCacheMapEntry.java:3527) > at > org.apache.ignite.internal.processors.cache.GridCacheMapEntry.initialValue(GridCacheMapEntry.java:2735) > at > org.apache.ignite.internal.processors.datastreamer.DataStreamerImpl$IsolatedUpdater.receive(DataStreamerImpl.java:2113) > ... 11 more > class org.apache.ignite.IgniteCheckedException: DataStreamer request failed > [node=57961924-82ec-4d56-81eb-1a4109a00000] > at > org.apache.ignite.internal.processors.datastreamer.DataStreamerImpl$Buffer.onResponse(DataStreamerImpl.java:1900) > at > org.apache.ignite.internal.processors.datastreamer.DataStreamerImpl$3.onMessage(DataStreamerImpl.java:344) > at > org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1554) > at > org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1182) > at > org.apache.ignite.internal.managers.communication.GridIoManager.access$4200(GridIoManager.java:125) > at > org.apache.ignite.internal.managers.communication.GridIoManager$9.run(GridIoManager.java:1089) > at > org.apache.ignite.internal.util.StripedExecutor$Stripe.run(StripedExecutor.java:499) > at java.lang.Thread.run(Thread.java:748) > Caused by: class org.apache.ignite.IgniteException: Failed to set initial > value for cache entry > at > org.apache.ignite.internal.processors.datastreamer.DataStreamerImpl$IsolatedUpdater.receive(DataStreamerImpl.java:2135) > at > org.apache.ignite.internal.processors.datastreamer.DataStreamerUpdateJob.call(DataStreamerUpdateJob.java:140) > at > org.apache.ignite.internal.processors.datastreamer.DataStreamProcessor.localUpdate(DataStreamProcessor.java:397) > at > org.apache.ignite.internal.processors.datastreamer.DataStreamProcessor.processRequest(DataStreamProcessor.java:302) > at > org.apache.ignite.internal.processors.datastreamer.DataStreamProcessor.access$000(DataStreamProcessor.java:59) > at > org.apache.ignite.internal.processors.datastreamer.DataStreamProcessor$1.onMessage(DataStreamProcessor.java:89) > ... 6 more > Caused by: class org.apache.ignite.IgniteCheckedException: Failed to update > index, incorrect key class [expCls=org.apache.ignite.lang.IgniteUuid, > actualCls=org.apache.ignite.internal.binary.BinaryObjectImpl] > at > org.apache.ignite.internal.processors.query.GridQueryProcessor.typeByValue(GridQueryProcessor.java:1954) > at > org.apache.ignite.internal.processors.query.GridQueryProcessor.store(GridQueryProcessor.java:1877) > at > org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager.store(GridCacheQueryManager.java:403) > at > org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.finishUpdate(IgniteCacheOffheapManagerImpl.java:1343) > at > org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.invoke(IgniteCacheOffheapManagerImpl.java:1207) > at > org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl.invoke(IgniteCacheOffheapManagerImpl.java:345) > at > org.apache.ignite.internal.processors.cache.GridCacheMapEntry.storeValue(GridCacheMapEntry.java:3527) > at > org.apache.ignite.internal.processors.cache.GridCacheMapEntry.initialValue(GridCacheMapEntry.java:2735) > at > org.apache.ignite.internal.processors.datastreamer.DataStreamerImpl$IsolatedUpdater.receive(DataStreamerImpl.java:2113) > ... 11 more > {noformat} -- This message was sent by Atlassian JIRA (v7.6.3#76005)