Semen Boikov created IGNITE-668:
-----------------------------------
Summary: Need properly handle system caches
Key: IGNITE-668
URL: https://issues.apache.org/jira/browse/IGNITE-668
Project: Ignite
Issue Type: Bug
Components: cache
Reporter: Semen Boikov
Assignee: Alexey Goncharuk
Priority: Blocker
Fix For: sprint-3
Issue is found by QA, scenario:
- start one node with configuration for igfs (includes igfs data and meta
caches)
- start second node without cache configuration, igfs data and meta caches
start on this node
- try to use igfs, get error on second node:
{noformat}
Caused by: class org.apache.ignite.IgniteCheckedException: Failed to enlist new
cache to existing transaction (cache configurations are not compatible)
[activeCaches=[], cacheName=dataCache, cacheSystem=false, txSystem=true]
at
org.apache.ignite.internal.processors.cache.transactions.IgniteTxLocalAdapter.addActiveCache(IgniteTxLocalAdapter.java:3079)
at
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxLocalAdapter.addEntry(GridDhtTxLocalAdapter.java:463)
at
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxLocal.prepareAsync(GridDhtTxLocal.java:442)
{noformat}
Added simple test reproducing issue IgsfStartCacheTest.
When cache processor starts igfs caches specified in configuration then these
caches are marked as 'system', but when caches are dynamically started on
second node these caches do not have 'system' flag.
For me looks like GridCacheProcessor adds igfs and hadoop caches to 'sysCaches'
collection to distinguish public caches and caches which can not be obtained
from public API (e.g. Ignite.cache(cacheName)). But in code I see that for
'system' caches events are not recorded and 'utility cache pool' is used. I
think 'utility cache pool' should not be used for igfs and hadoop caches.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)