ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Denis Magda (JIRA)" <j...@apache.org>
Subject [jira] [Created] (IGNITE-2108) CacheJdbcPojoStoreFactory is not fully initialized when deserialized on a remote node
Date Tue, 08 Dec 2015 13:31:10 GMT
Denis Magda created IGNITE-2108:
-----------------------------------

             Summary: CacheJdbcPojoStoreFactory is not fully initialized when deserialized
on a remote node
                 Key: IGNITE-2108
                 URL: https://issues.apache.org/jira/browse/IGNITE-2108
             Project: Ignite
          Issue Type: Bug
    Affects Versions: 1.5
            Reporter: Denis Magda
            Priority: Blocker
             Fix For: 1.5


When a cache is started dynamically and has an implementation of {{CacheJdbcPojoStoreFactory}}
in its configuration then the cache startup procedure will fail on a remote node with the
following exception:

{noformat}
[16:14:10,014][ERROR][exchange-worker-#49%null%][GridDhtPartitionsExchangeFuture] Failed to
reinitialize local partitions (preloading will be stopped): GridDhtPartitionExchangeId [topVer=AffinityTopologyVersion
[topVer=2, minorTopVer=1], nodeId=a7a1f89a, evt=DISCOVERY_CUSTOM_EVT]
class org.apache.ignite.IgniteCheckedException: Failed to start component: class org.apache.ignite.IgniteException:
Failed to initialize cache store (data source is not provided).
	at org.apache.ignite.internal.util.IgniteUtils.startLifecycleAware(IgniteUtils.java:8385)
	at org.apache.ignite.internal.processors.cache.GridCacheProcessor.createCache(GridCacheProcessor.java:1251)
	at org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareCacheStart(GridCacheProcessor.java:1620)
	at org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareCachesStart(GridCacheProcessor.java:1545)
	at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.startCaches(GridDhtPartitionsExchangeFuture.java:944)
	at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.init(GridDhtPartitionsExchangeFuture.java:511)
	at org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body(GridCachePartitionExchangeManager.java:1297)
	at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110)
	at java.lang.Thread.run(Thread.java:745)
Caused by: class org.apache.ignite.IgniteException: Failed to initialize cache store (data
source is not provided).
	at org.apache.ignite.cache.store.jdbc.CacheAbstractJdbcStore.start(CacheAbstractJdbcStore.java:297)
	at org.apache.ignite.internal.util.IgniteUtils.startLifecycleAware(IgniteUtils.java:8381)
	... 8 more
{noformat}

The reason is that in version 1.5 {{CacheJdbcPojoStoreFactory}} was reworked significantly
and presently it has field {{private transient DataSource dataSrc}} that must be initiated
somehow after deserialization.

The issue is easily to reproduce with schema-import example:
1) complete all the steps described in the demo tutorial
https://apacheignite.readme.io/docs/automatic-persistence#example

2) Start a remote node using {{DemoNode}}

3) Start {{Demo}}

4) The node started with {{DemoNode}} won't be able to start a cache because of the issue
with the storage described above



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message