Details
-
Bug
-
Status: Open
-
Minor
-
Resolution: Unresolved
-
None
-
None
-
None
-
None
Description
Cache can't be created on client if cluster uses not BinaryMarshaller and indexing configured for cache with value classes not in client classpath.
There are at least two failing cases:
1. Automatic cache creation in case of executing cross cache query on client node
2. Automatic cache creation in case of using JDBC driver with out specified cache name.
Steps to reproduce:
1. Both client and server use OptimizedMarshaller.
2. Start server node with cache that should use some non primitive values and have indexing configuring for fields of this value classes.
3. Start client node that doesn't have mentioned value classes in class path and doesn't start cache.
4. On client node execute sql query (e.g. via some default cache) that uses cache name started only on server node.
Exception will be thrown:
SEVERE: Failed to wait for completion of partition map exchange (preloading will not start): GridDhtPartitionsExchangeFuture [dummy=false, forcePreload=false, reassign=false, discoEvt=DiscoveryCustomEvent [customMsg=null, affTopVer=AffinityTopologyVersion [topVer=6, minorTopVer=1], super=DiscoveryEvent [evtNode=TcpDiscoveryNode [id=655f9a15-50d1-41fe-9437-65594a280455, addrs=[127.0.0.1, 192.168.0.192], sockAddrs=[/192.168.0.192:0, /127.0.0.1:0, /192.168.0.192:0], discPort=0, order=6, intOrder=0, lastExchangeTime=1463343172508, loc=true, ver=1.6.0#20160513-sha1:85eaa9c3, isClient=true], topVer=6, nodeId8=655f9a15, msg=null, type=DISCOVERY_CUSTOM_EVT, tstamp=1463343174650]], remaining=[61462236-c2f2-4f31-be78-495105a066d6, a07f59c3-348b-42d8-b237-cbb48006c698, 03224102-9daf-4477-ba6a-21ef0105c533], crd=TcpDiscoveryNode [id=03224102-9daf-4477-ba6a-21ef0105c533, addrs=[127.0.0.1, 192.168.0.192], sockAddrs=[/192.168.0.192:47500, /127.0.0.1:47500, /192.168.0.192:47500], discPort=47500, order=1, intOrder=1, lastExchangeTime=1463343173861, loc=false, ver=1.6.0#20160513-sha1:85eaa9c3, isClient=false], exchId=GridDhtPartitionExchangeId [topVer=AffinityTopologyVersion [topVer=6, minorTopVer=1], nodeId=655f9a15, evt=DISCOVERY_CUSTOM_EVT], added=true, initFut=GridFutureAdapter [resFlag=2, res=false, startTime=1463343174650, endTime=1463343174670, ignoreInterrupts=false, state=DONE], init=false, topSnapshot=null, lastVer=null, partReleaseFut=null, affChangeMsg=null, skipPreload=true, clientOnlyExchange=false, initTs=1463343174650, centralizedAff=false, oldest=03224102-9daf-4477-ba6a-21ef0105c533, oldestOrder=1, evtLatch=0, remaining=[61462236-c2f2-4f31-be78-495105a066d6, a07f59c3-348b-42d8-b237-cbb48006c698, 03224102-9daf-4477-ba6a-21ef0105c533], super=GridFutureAdapter [resFlag=1, res=class o.a.i.IgniteCheckedException: Failed to find value class in the node classpath (use default marshaller to enable binary objects) : o.a.i.zeppelin.Person, startTime=1463343174650, endTime=1463343174670, ignoreInterrupts=false, state=DONE]] class org.apache.ignite.IgniteCheckedException: Failed to find value class in the node classpath (use default marshaller to enable binary objects) : org.apache.ignite.zeppelin.Person at org.apache.ignite.internal.processors.query.GridQueryProcessor.initializeCache(GridQueryProcessor.java:249) at org.apache.ignite.internal.processors.query.GridQueryProcessor.onCacheStart(GridQueryProcessor.java:462) at org.apache.ignite.internal.processors.cache.GridCacheProcessor.startCache(GridCacheProcessor.java:1043) at org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareCacheStart(GridCacheProcessor.java:1714) at org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareCacheStart(GridCacheProcessor.java:1605) at org.apache.ignite.internal.processors.cache.CacheAffinitySharedManager.onCacheChangeRequest(CacheAffinitySharedManager.java:382) at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.onCacheChangeRequest(GridDhtPartitionsExchangeFuture.java:562) at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.init(GridDhtPartitionsExchangeFuture.java:445) at org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body(GridCachePartitionExchangeManager.java:1333) at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110) at java.lang.Thread.run(Thread.java:744)