[jira] [Commented] (IGNITE-9878) Failed to start near cache after second call of getOrCreateCache

2019-05-20 Thread Roman Guseinov (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-9878?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16844456#comment-16844456
 ] 

Roman Guseinov commented on IGNITE-9878:


[~vkulichenko], thanks for your comment. 

I believe it should work like `IgniteCache 
getOrCreateCache(CacheConfiguration cacheCfg)`. You can call this method 
with the same cacheCfg multiple times without any errors.

If you try to do the same with `IgniteCache 
getOrCreateCache(CacheConfiguration cacheCfg,  NearCacheConfiguration nearCfg)` the first call will be successful, but the second one will fail. 
Does it look correct to you? Why Ignite should throw an exception instead of 
returning the same results (like for the first call)?

> Failed to start near cache after second call of getOrCreateCache
> 
>
> Key: IGNITE-9878
> URL: https://issues.apache.org/jira/browse/IGNITE-9878
> Project: Ignite
>  Issue Type: Bug
>  Components: cache
>Affects Versions: 2.6
>Reporter: Roman Guseinov
>Assignee: Roman Guseinov
>Priority: Major
> Attachments: NearCacheIssueReproducer.java, NearCacheTest.java
>
>
> Repeated call of `Ignite.getOrCreateCache(CacheConfiguration cacheCfg, 
> NearCacheConfiguration nearCfg)` lead the following exception:
> {code:java}
> javax.cache.CacheException: class org.apache.ignite.IgniteCheckedException: 
> Failed to start near cache (local node is an affinity node for cache): 
> ignite-test-near-rep
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheUtils.convertToCacheException(GridCacheUtils.java:1305)
>   at 
> org.apache.ignite.internal.IgniteKernal.getOrCreateCache(IgniteKernal.java:2995)
>   at 
> org.apache.ignite.reproducers.cache.NearCacheIssueReproducer.testRepeatedGetOrCreateCache(NearCacheIssueReproducer.java:24)
> Caused by: class org.apache.ignite.IgniteCheckedException: Failed to start 
> near cache (local node is an affinity node for cache): ignite-test-near-rep
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareCacheChangeRequest(GridCacheProcessor.java:5235)
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.dynamicStartCache(GridCacheProcessor.java:3621)
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.dynamicStartCache(GridCacheProcessor.java:3560)
>   at 
> org.apache.ignite.internal.IgniteKernal.getOrCreateCache(IgniteKernal.java:2983)
>   ... 23 more
> {code}
> Also, if a cache is specified in the IgniteConfiguration, 
> `Ignite#getOrCreateNearCache` will fail with the following exception:
> {code:java}
> javax.cache.CacheException: class org.apache.ignite.IgniteCheckedException: 
> Failed to start near cache (a cache with the same name without near cache is 
> already started)
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheUtils.convertToCacheException(GridCacheUtils.java:1305)
>   at 
> org.apache.ignite.internal.IgniteKernal.getOrCreateNearCache(IgniteKernal.java:3072)
>   at 
> org.apache.ignite.reproducers.cache.NearCacheIssueReproducer.testGetOrCreateNearCache(NearCacheIssueReproducer.java:32)
> Caused by: class org.apache.ignite.IgniteCheckedException: Failed to start 
> near cache (a cache with the same name without near cache is already started)
>   at 
> org.apache.ignite.internal.IgniteKernal.checkNearCacheStarted(IgniteKernal.java:3085)
>   at 
> org.apache.ignite.internal.IgniteKernal.getOrCreateNearCache(IgniteKernal.java:3067)
>   ... 23 more
> {code}
> The test is attached   [^NearCacheIssueReproducer.java]. The workaround is to 
> put near cache config into cache configuration 
> `CacheConfiguration.setNearConfiguration`.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (IGNITE-10663) Implement cache mode allows reads with consistency check and fix

2019-05-20 Thread Ignite TC Bot (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-10663?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16844211#comment-16844211
 ] 

Ignite TC Bot commented on IGNITE-10663:


{panel:title=-- Run :: All: Possible 
Blockers|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1}
{color:#d04437}Platform .NET{color} [[tests 
8|https://ci.ignite.apache.org/viewLog.html?buildId=3894167]]
* exe: CacheParityTest.TestCache

{color:#d04437}Platform .NET (Core Linux){color} [[tests 
1|https://ci.ignite.apache.org/viewLog.html?buildId=3894168]]
* dll: CacheParityTest.TestCache

{color:#d04437}MVCC PDS 4{color} [[tests 
6|https://ci.ignite.apache.org/viewLog.html?buildId=3894193]]
* IgnitePdsMvccTestSuite4: 
IgniteRebalanceOnCachesStoppingOrDestroyingTest.testDestroySpecificCacheAndCacheGroupSecondGroup
* IgnitePdsMvccTestSuite4: 
IgniteRebalanceOnCachesStoppingOrDestroyingTest.testStopCachesOnDeactivationSecondGroup

{color:#d04437}[Check Code Style]{color} [[tests 0 Exit Code 
|https://ci.ignite.apache.org/viewLog.html?buildId=3894195]]

{color:#d04437}Thin client: PHP{color} [[tests 104 Exit Code 
|https://ci.ignite.apache.org/viewLog.html?buildId=3894131]]

{panel}
[TeamCity *-- Run :: All* 
Results|https://ci.ignite.apache.org/viewLog.html?buildId=3894196buildTypeId=IgniteTests24Java8_RunAll]

> Implement cache mode allows reads with consistency check and fix
> 
>
> Key: IGNITE-10663
> URL: https://issues.apache.org/jira/browse/IGNITE-10663
> Project: Ignite
>  Issue Type: Task
>Reporter: Anton Vinogradov
>Assignee: Anton Vinogradov
>Priority: Major
>  Labels: iep-31
> Fix For: 2.8
>
>  Time Spent: 10h 10m
>  Remaining Estimate: 0h
>
> The main idea is to provide special "read from cache" mode which will read a 
> value from primary and all backups and will check that values are the same.
> In case values differ they should be fixed according to the appropriate 
> strategy.
> ToDo list:
> 1) {{cache.withConsistency().get(key)}} should guarantee values will be 
> checked across the topology and fixed if necessary.
> 2) LWW (Last Write Wins) strategy should be used for validation.
> 3) Since  LWW and any other strategy do not guarantee that the correct value 
> will be chosen.
> We have to record the event contains all values and the chosen one.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (IGNITE-10913) Reduce heap occupation by o.a.i.i.processors.cache.persistence.file.FilePageStore instances.

2019-05-20 Thread Denis Chudov (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-10913?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16844078#comment-16844078
 ] 

Denis Chudov commented on IGNITE-10913:
---

This PR should not be merged to master before passing performance tests.

> Reduce heap occupation by 
> o.a.i.i.processors.cache.persistence.file.FilePageStore instances.
> 
>
> Key: IGNITE-10913
> URL: https://issues.apache.org/jira/browse/IGNITE-10913
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Alexei Scherbakov
>Assignee: Denis Chudov
>Priority: Major
> Fix For: 2.8
>
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> With large topology and large amount of caches/partitions and enabled 
> persistence could be millions of FilePageStore objects in heap (for each 
> partition).
> Each instance has a reference to a File (field cfgFile) storing as String 
> absolute path to a partition.
> Also internal File inplementation (on example UnixFile) also allocates space 
> for file path.
> I observed about 2Gb of heap space occupied by these objects in one of 
> environments.
> Solution: dereference (set to null) cfgFile after object creation, create 
> File object lazily on demand when needed.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Updated] (IGNITE-10913) Reduce heap occupation by o.a.i.i.processors.cache.persistence.file.FilePageStore instances.

2019-05-20 Thread Ivan Rakov (JIRA)


 [ 
https://issues.apache.org/jira/browse/IGNITE-10913?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ivan Rakov updated IGNITE-10913:

Reviewer: Eduard Shangareev

> Reduce heap occupation by 
> o.a.i.i.processors.cache.persistence.file.FilePageStore instances.
> 
>
> Key: IGNITE-10913
> URL: https://issues.apache.org/jira/browse/IGNITE-10913
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Alexei Scherbakov
>Assignee: Denis Chudov
>Priority: Major
> Fix For: 2.8
>
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> With large topology and large amount of caches/partitions and enabled 
> persistence could be millions of FilePageStore objects in heap (for each 
> partition).
> Each instance has a reference to a File (field cfgFile) storing as String 
> absolute path to a partition.
> Also internal File inplementation (on example UnixFile) also allocates space 
> for file path.
> I observed about 2Gb of heap space occupied by these objects in one of 
> environments.
> Solution: dereference (set to null) cfgFile after object creation, create 
> File object lazily on demand when needed.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Comment Edited] (IGNITE-9878) Failed to start near cache after second call of getOrCreateCache

2019-05-20 Thread Valentin Kulichenko (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-9878?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16844036#comment-16844036
 ] 

Valentin Kulichenko edited comment on IGNITE-9878 at 5/20/19 3:17 PM:
--

I don't think it's a bug, because these exceptions are thrown on a server node. 
If you want to have a near cache on server node, you need to define 
{{NearCacheConfiguration}} as part of {{CacheConfiguration}}, and not provide 
one in {{getOrCreateCache}}.

Said that, behavior looks correct to me, although there is a definite usability 
issue. Exceptions have to be clearer, and we might even think about revisiting 
this API for future major versions.


was (Author: vkulichenko):
I don't think it's a bug, because these exceptions are thrown on a server node. 
If you want to have a near cache on server node, you need to define 
`NearCacheConfiguration` as part of `CacheConfiguration`, and not provide one 
in `getOrCreateCache`.

Said that, behavior looks correct to me, although there is a definite usability 
issue. Exceptions have to be clearer, and we might even think about revisiting 
this API for future major versions.

> Failed to start near cache after second call of getOrCreateCache
> 
>
> Key: IGNITE-9878
> URL: https://issues.apache.org/jira/browse/IGNITE-9878
> Project: Ignite
>  Issue Type: Bug
>  Components: cache
>Affects Versions: 2.6
>Reporter: Roman Guseinov
>Assignee: Roman Guseinov
>Priority: Major
> Attachments: NearCacheIssueReproducer.java
>
>
> Repeated call of `Ignite.getOrCreateCache(CacheConfiguration cacheCfg, 
> NearCacheConfiguration nearCfg)` lead the following exception:
> {code:java}
> javax.cache.CacheException: class org.apache.ignite.IgniteCheckedException: 
> Failed to start near cache (local node is an affinity node for cache): 
> ignite-test-near-rep
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheUtils.convertToCacheException(GridCacheUtils.java:1305)
>   at 
> org.apache.ignite.internal.IgniteKernal.getOrCreateCache(IgniteKernal.java:2995)
>   at 
> org.apache.ignite.reproducers.cache.NearCacheIssueReproducer.testRepeatedGetOrCreateCache(NearCacheIssueReproducer.java:24)
> Caused by: class org.apache.ignite.IgniteCheckedException: Failed to start 
> near cache (local node is an affinity node for cache): ignite-test-near-rep
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareCacheChangeRequest(GridCacheProcessor.java:5235)
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.dynamicStartCache(GridCacheProcessor.java:3621)
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.dynamicStartCache(GridCacheProcessor.java:3560)
>   at 
> org.apache.ignite.internal.IgniteKernal.getOrCreateCache(IgniteKernal.java:2983)
>   ... 23 more
> {code}
> Also, if a cache is specified in the IgniteConfiguration, 
> `Ignite#getOrCreateNearCache` will fail with the following exception:
> {code:java}
> javax.cache.CacheException: class org.apache.ignite.IgniteCheckedException: 
> Failed to start near cache (a cache with the same name without near cache is 
> already started)
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheUtils.convertToCacheException(GridCacheUtils.java:1305)
>   at 
> org.apache.ignite.internal.IgniteKernal.getOrCreateNearCache(IgniteKernal.java:3072)
>   at 
> org.apache.ignite.reproducers.cache.NearCacheIssueReproducer.testGetOrCreateNearCache(NearCacheIssueReproducer.java:32)
> Caused by: class org.apache.ignite.IgniteCheckedException: Failed to start 
> near cache (a cache with the same name without near cache is already started)
>   at 
> org.apache.ignite.internal.IgniteKernal.checkNearCacheStarted(IgniteKernal.java:3085)
>   at 
> org.apache.ignite.internal.IgniteKernal.getOrCreateNearCache(IgniteKernal.java:3067)
>   ... 23 more
> {code}
> The test is attached   [^NearCacheIssueReproducer.java]. The workaround is to 
> put near cache config into cache configuration 
> `CacheConfiguration.setNearConfiguration`.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (IGNITE-9878) Failed to start near cache after second call of getOrCreateCache

2019-05-20 Thread Valentin Kulichenko (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-9878?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16844036#comment-16844036
 ] 

Valentin Kulichenko commented on IGNITE-9878:
-

I don't think it's a bug, because these exceptions are thrown on a server node. 
If you want to have a near cache on server node, you need to define 
`NearCacheConfiguration` as part of `CacheConfiguration`, and not provide one 
in `getOrCreateCache`.

Said that, behavior looks correct to me, although there is a definite usability 
issue. Exceptions have to be clearer, and we might even think about revisiting 
this API for future major versions.

> Failed to start near cache after second call of getOrCreateCache
> 
>
> Key: IGNITE-9878
> URL: https://issues.apache.org/jira/browse/IGNITE-9878
> Project: Ignite
>  Issue Type: Bug
>  Components: cache
>Affects Versions: 2.6
>Reporter: Roman Guseinov
>Assignee: Roman Guseinov
>Priority: Major
> Attachments: NearCacheIssueReproducer.java
>
>
> Repeated call of `Ignite.getOrCreateCache(CacheConfiguration cacheCfg, 
> NearCacheConfiguration nearCfg)` lead the following exception:
> {code:java}
> javax.cache.CacheException: class org.apache.ignite.IgniteCheckedException: 
> Failed to start near cache (local node is an affinity node for cache): 
> ignite-test-near-rep
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheUtils.convertToCacheException(GridCacheUtils.java:1305)
>   at 
> org.apache.ignite.internal.IgniteKernal.getOrCreateCache(IgniteKernal.java:2995)
>   at 
> org.apache.ignite.reproducers.cache.NearCacheIssueReproducer.testRepeatedGetOrCreateCache(NearCacheIssueReproducer.java:24)
> Caused by: class org.apache.ignite.IgniteCheckedException: Failed to start 
> near cache (local node is an affinity node for cache): ignite-test-near-rep
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareCacheChangeRequest(GridCacheProcessor.java:5235)
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.dynamicStartCache(GridCacheProcessor.java:3621)
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.dynamicStartCache(GridCacheProcessor.java:3560)
>   at 
> org.apache.ignite.internal.IgniteKernal.getOrCreateCache(IgniteKernal.java:2983)
>   ... 23 more
> {code}
> Also, if a cache is specified in the IgniteConfiguration, 
> `Ignite#getOrCreateNearCache` will fail with the following exception:
> {code:java}
> javax.cache.CacheException: class org.apache.ignite.IgniteCheckedException: 
> Failed to start near cache (a cache with the same name without near cache is 
> already started)
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheUtils.convertToCacheException(GridCacheUtils.java:1305)
>   at 
> org.apache.ignite.internal.IgniteKernal.getOrCreateNearCache(IgniteKernal.java:3072)
>   at 
> org.apache.ignite.reproducers.cache.NearCacheIssueReproducer.testGetOrCreateNearCache(NearCacheIssueReproducer.java:32)
> Caused by: class org.apache.ignite.IgniteCheckedException: Failed to start 
> near cache (a cache with the same name without near cache is already started)
>   at 
> org.apache.ignite.internal.IgniteKernal.checkNearCacheStarted(IgniteKernal.java:3085)
>   at 
> org.apache.ignite.internal.IgniteKernal.getOrCreateNearCache(IgniteKernal.java:3067)
>   ... 23 more
> {code}
> The test is attached   [^NearCacheIssueReproducer.java]. The workaround is to 
> put near cache config into cache configuration 
> `CacheConfiguration.setNearConfiguration`.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (IGNITE-9878) Failed to start near cache after second call of getOrCreateCache

2019-05-20 Thread Valentin Kulichenko (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-9878?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16844043#comment-16844043
 ] 

Valentin Kulichenko commented on IGNITE-9878:
-

Attached another reproducer - {{NearCacheTest.java}}. This looks like a bug. 
Basically, I can't create a near cache on a *client* node if cache 
configuration is declared as a part of `IgniteConfiguration` on this client.

> Failed to start near cache after second call of getOrCreateCache
> 
>
> Key: IGNITE-9878
> URL: https://issues.apache.org/jira/browse/IGNITE-9878
> Project: Ignite
>  Issue Type: Bug
>  Components: cache
>Affects Versions: 2.6
>Reporter: Roman Guseinov
>Assignee: Roman Guseinov
>Priority: Major
> Attachments: NearCacheIssueReproducer.java, NearCacheTest.java
>
>
> Repeated call of `Ignite.getOrCreateCache(CacheConfiguration cacheCfg, 
> NearCacheConfiguration nearCfg)` lead the following exception:
> {code:java}
> javax.cache.CacheException: class org.apache.ignite.IgniteCheckedException: 
> Failed to start near cache (local node is an affinity node for cache): 
> ignite-test-near-rep
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheUtils.convertToCacheException(GridCacheUtils.java:1305)
>   at 
> org.apache.ignite.internal.IgniteKernal.getOrCreateCache(IgniteKernal.java:2995)
>   at 
> org.apache.ignite.reproducers.cache.NearCacheIssueReproducer.testRepeatedGetOrCreateCache(NearCacheIssueReproducer.java:24)
> Caused by: class org.apache.ignite.IgniteCheckedException: Failed to start 
> near cache (local node is an affinity node for cache): ignite-test-near-rep
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareCacheChangeRequest(GridCacheProcessor.java:5235)
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.dynamicStartCache(GridCacheProcessor.java:3621)
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.dynamicStartCache(GridCacheProcessor.java:3560)
>   at 
> org.apache.ignite.internal.IgniteKernal.getOrCreateCache(IgniteKernal.java:2983)
>   ... 23 more
> {code}
> Also, if a cache is specified in the IgniteConfiguration, 
> `Ignite#getOrCreateNearCache` will fail with the following exception:
> {code:java}
> javax.cache.CacheException: class org.apache.ignite.IgniteCheckedException: 
> Failed to start near cache (a cache with the same name without near cache is 
> already started)
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheUtils.convertToCacheException(GridCacheUtils.java:1305)
>   at 
> org.apache.ignite.internal.IgniteKernal.getOrCreateNearCache(IgniteKernal.java:3072)
>   at 
> org.apache.ignite.reproducers.cache.NearCacheIssueReproducer.testGetOrCreateNearCache(NearCacheIssueReproducer.java:32)
> Caused by: class org.apache.ignite.IgniteCheckedException: Failed to start 
> near cache (a cache with the same name without near cache is already started)
>   at 
> org.apache.ignite.internal.IgniteKernal.checkNearCacheStarted(IgniteKernal.java:3085)
>   at 
> org.apache.ignite.internal.IgniteKernal.getOrCreateNearCache(IgniteKernal.java:3067)
>   ... 23 more
> {code}
> The test is attached   [^NearCacheIssueReproducer.java]. The workaround is to 
> put near cache config into cache configuration 
> `CacheConfiguration.setNearConfiguration`.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Updated] (IGNITE-9878) Failed to start near cache after second call of getOrCreateCache

2019-05-20 Thread Valentin Kulichenko (JIRA)


 [ 
https://issues.apache.org/jira/browse/IGNITE-9878?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Valentin Kulichenko updated IGNITE-9878:

Attachment: NearCacheTest.java

> Failed to start near cache after second call of getOrCreateCache
> 
>
> Key: IGNITE-9878
> URL: https://issues.apache.org/jira/browse/IGNITE-9878
> Project: Ignite
>  Issue Type: Bug
>  Components: cache
>Affects Versions: 2.6
>Reporter: Roman Guseinov
>Assignee: Roman Guseinov
>Priority: Major
> Attachments: NearCacheIssueReproducer.java, NearCacheTest.java
>
>
> Repeated call of `Ignite.getOrCreateCache(CacheConfiguration cacheCfg, 
> NearCacheConfiguration nearCfg)` lead the following exception:
> {code:java}
> javax.cache.CacheException: class org.apache.ignite.IgniteCheckedException: 
> Failed to start near cache (local node is an affinity node for cache): 
> ignite-test-near-rep
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheUtils.convertToCacheException(GridCacheUtils.java:1305)
>   at 
> org.apache.ignite.internal.IgniteKernal.getOrCreateCache(IgniteKernal.java:2995)
>   at 
> org.apache.ignite.reproducers.cache.NearCacheIssueReproducer.testRepeatedGetOrCreateCache(NearCacheIssueReproducer.java:24)
> Caused by: class org.apache.ignite.IgniteCheckedException: Failed to start 
> near cache (local node is an affinity node for cache): ignite-test-near-rep
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareCacheChangeRequest(GridCacheProcessor.java:5235)
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.dynamicStartCache(GridCacheProcessor.java:3621)
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.dynamicStartCache(GridCacheProcessor.java:3560)
>   at 
> org.apache.ignite.internal.IgniteKernal.getOrCreateCache(IgniteKernal.java:2983)
>   ... 23 more
> {code}
> Also, if a cache is specified in the IgniteConfiguration, 
> `Ignite#getOrCreateNearCache` will fail with the following exception:
> {code:java}
> javax.cache.CacheException: class org.apache.ignite.IgniteCheckedException: 
> Failed to start near cache (a cache with the same name without near cache is 
> already started)
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheUtils.convertToCacheException(GridCacheUtils.java:1305)
>   at 
> org.apache.ignite.internal.IgniteKernal.getOrCreateNearCache(IgniteKernal.java:3072)
>   at 
> org.apache.ignite.reproducers.cache.NearCacheIssueReproducer.testGetOrCreateNearCache(NearCacheIssueReproducer.java:32)
> Caused by: class org.apache.ignite.IgniteCheckedException: Failed to start 
> near cache (a cache with the same name without near cache is already started)
>   at 
> org.apache.ignite.internal.IgniteKernal.checkNearCacheStarted(IgniteKernal.java:3085)
>   at 
> org.apache.ignite.internal.IgniteKernal.getOrCreateNearCache(IgniteKernal.java:3067)
>   ... 23 more
> {code}
> The test is attached   [^NearCacheIssueReproducer.java]. The workaround is to 
> put near cache config into cache configuration 
> `CacheConfiguration.setNearConfiguration`.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (IGNITE-11592) NPE in case of continuing tx and cache stop operation.

2019-05-20 Thread Pavel Kovalenko (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-11592?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16844012#comment-16844012
 ] 

Pavel Kovalenko commented on IGNITE-11592:
--

[~zstan] It's not clear to understand what is the cause of the problem and what 
is the scenario (step-by-step) to get into such a situation.
Could you please fill in the scenario to the ticket description?

> NPE in case of continuing tx and cache stop operation. 
> ---
>
> Key: IGNITE-11592
> URL: https://issues.apache.org/jira/browse/IGNITE-11592
> Project: Ignite
>  Issue Type: Bug
>Affects Versions: 2.7
>Reporter: Stanilovsky Evgeny
>Assignee: Stanilovsky Evgeny
>Priority: Major
> Fix For: 2.8
>
>  Time Spent: 2h 40m
>  Remaining Estimate: 0h
>
> Parallel cache stop and tx operations may lead to NPE.
> {code}
> java.lang.NullPointerException
>   at 
> org.apache.ignite.internal.processors.cache.CacheObjectImpl.finishUnmarshal(CacheObjectImpl.java:129)
>   at 
> org.apache.ignite.internal.processors.cache.transactions.TxEntryValueHolder.unmarshal(TxEntryValueHolder.java:151)
>   at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxEntry.unmarshal(IgniteTxEntry.java:964)
>   at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.unmarshal(IgniteTxHandler.java:306)
>   at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.prepareNearTx(IgniteTxHandler.java:338)
>   at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.processNearTxPrepareRequest0(IgniteTxHandler.java:154)
>   at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.lambda$null$0(IgniteTxHandler.java:580)
>   at 
> org.apache.ignite.internal.util.StripedExecutor$Stripe.body(StripedExecutor.java:496)
>   at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110)
>   at java.lang.Thread.run(Thread.java:748)
> {code}
> i hope that correct decision would be to roll back tx (on exchange phase) 
> participating in stopped caches.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Updated] (IGNITE-11110) UnsupportedOperationException: null when stopping grid

2019-05-20 Thread Denis Mekhanikov (JIRA)


 [ 
https://issues.apache.org/jira/browse/IGNITE-0?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Denis Mekhanikov updated IGNITE-0:
--
Ignite Flags:   (was: Docs Required)

> UnsupportedOperationException: null when stopping grid
> --
>
> Key: IGNITE-0
> URL: https://issues.apache.org/jira/browse/IGNITE-0
> Project: Ignite
>  Issue Type: Bug
>Affects Versions: 2.7
>Reporter: Jens Borgland
>Priority: Major
>
> After upgrading to 2.7 we've started getting these errors when stopping grids:
> {noformat}
> java.lang.UnsupportedOperationException: null
>   at 
> org.jsr166.ConcurrentLinkedHashMap.clear(ConcurrentLinkedHashMap.java:1551) 
> ~[ignite-core-2.7.0.jar:2.7.0]
>   at 
> org.apache.ignite.internal.processors.job.GridJobProcessor.stop(GridJobProcessor.java:264)
>  ~[ignite-core-2.7.0.jar:2.7.0]
>   at 
> org.apache.ignite.internal.IgniteKernal.stop0(IgniteKernal.java:2356) 
> ~[ignite-core-2.7.0.jar:2.7.0]
>   at org.apache.ignite.internal.IgniteKernal.stop(IgniteKernal.java:2228) 
> ~[ignite-core-2.7.0.jar:2.7.0]
>   at 
> org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.stop0(IgnitionEx.java:2612)
>  ~[ignite-core-2.7.0.jar:2.7.0]
>   at 
> org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.stop(IgnitionEx.java:2575)
>  ~[ignite-core-2.7.0.jar:2.7.0]
>   at org.apache.ignite.internal.IgnitionEx.stop(IgnitionEx.java:379) 
> ~[ignite-core-2.7.0.jar:2.7.0]
>   at org.apache.ignite.Ignition.stop(Ignition.java:225) 
> ~[ignite-core-2.7.0.jar:2.7.0]
>   at 
> org.apache.ignite.internal.IgniteKernal.close(IgniteKernal.java:3568) 
> ~[ignite-core-2.7.0.jar:2.7.0]
> {noformat}
> At first glance it looks likely that it was introduced with commit 
> [d04d764|https://github.com/apache/ignite/commit/d04d76440ce86873de7aebc8c03d39484cd1e3e5]
>  (the {{GridJobProcessor}} still calls {{clear()}} on maps).



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (IGNITE-11592) NPE in case of continuing tx and cache stop operation.

2019-05-20 Thread Eduard Shangareev (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-11592?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16843955#comment-16843955
 ] 

Eduard Shangareev commented on IGNITE-11592:


I have left some comments.

But I am not sure that we need to fix it. This case should be covered by a new 
latch on exchange.

[~Jokser], [~agoncharuk], please, look through, need your expertise.

> NPE in case of continuing tx and cache stop operation. 
> ---
>
> Key: IGNITE-11592
> URL: https://issues.apache.org/jira/browse/IGNITE-11592
> Project: Ignite
>  Issue Type: Bug
>Affects Versions: 2.7
>Reporter: Stanilovsky Evgeny
>Assignee: Stanilovsky Evgeny
>Priority: Major
> Fix For: 2.8
>
>  Time Spent: 2h 20m
>  Remaining Estimate: 0h
>
> Parallel cache stop and tx operations may lead to NPE.
> {code}
> java.lang.NullPointerException
>   at 
> org.apache.ignite.internal.processors.cache.CacheObjectImpl.finishUnmarshal(CacheObjectImpl.java:129)
>   at 
> org.apache.ignite.internal.processors.cache.transactions.TxEntryValueHolder.unmarshal(TxEntryValueHolder.java:151)
>   at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxEntry.unmarshal(IgniteTxEntry.java:964)
>   at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.unmarshal(IgniteTxHandler.java:306)
>   at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.prepareNearTx(IgniteTxHandler.java:338)
>   at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.processNearTxPrepareRequest0(IgniteTxHandler.java:154)
>   at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.lambda$null$0(IgniteTxHandler.java:580)
>   at 
> org.apache.ignite.internal.util.StripedExecutor$Stripe.body(StripedExecutor.java:496)
>   at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110)
>   at java.lang.Thread.run(Thread.java:748)
> {code}
> i hope that correct decision would be to roll back tx (on exchange phase) 
> participating in stopped caches.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Updated] (IGNITE-11855) Need to reduce log message in case: Topology projection is empty. Cluster group is empty.

2019-05-20 Thread Denis Chudov (JIRA)


 [ 
https://issues.apache.org/jira/browse/IGNITE-11855?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Denis Chudov updated IGNITE-11855:
--
Reviewer: Ivan Rakov

> Need to reduce log message in case: Topology projection is empty. Cluster 
> group is empty.
> -
>
> Key: IGNITE-11855
> URL: https://issues.apache.org/jira/browse/IGNITE-11855
> Project: Ignite
>  Issue Type: Bug
>Reporter: Denis Chudov
>Assignee: Denis Chudov
>Priority: Major
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> In some cases - there is a lot of stack trace in logs
> {code:java}
> [18:53:00,811][SEVERE][grid-timeout-worker-#39][diagnostic] Could not get 
> thread dump from transaction owner near node:
> class org.apache.ignite.cluster.ClusterGroupEmptyException: Cluster group is 
> empty.
>  at org.apache.ignite.internal.util.IgniteUtils$6.apply(IgniteUtils.java:853)
>  at org.apache.ignite.internal.util.IgniteUtils$6.apply(IgniteUtils.java:851)
>  at 
> org.apache.ignite.internal.util.IgniteUtils.convertException(IgniteUtils.java:991)
>  at 
> org.apache.ignite.internal.util.future.IgniteFutureImpl.convertException(IgniteFutureImpl.java:168)
>  at 
> org.apache.ignite.internal.util.future.IgniteFutureImpl.get(IgniteFutureImpl.java:137)
>  at 
> org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$8.apply(GridCachePartitionExchangeManager.java:2112)
>  at 
> org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$8.apply(GridCachePartitionExchangeManager.java:2107)
>  at 
> org.apache.ignite.internal.util.future.IgniteFutureImpl$InternalFutureListener.apply(IgniteFutureImpl.java:215)
>  at 
> org.apache.ignite.internal.util.future.IgniteFutureImpl$InternalFutureListener.apply(IgniteFutureImpl.java:179)
>  at 
> org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:385)
>  at 
> org.apache.ignite.internal.util.future.GridFutureAdapter.listen(GridFutureAdapter.java:355)
>  at 
> org.apache.ignite.internal.util.future.IgniteFutureImpl.listen(IgniteFutureImpl.java:71)
>  at 
> org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager.dumpLongRunningTransaction(GridCachePartitionExchangeManager.java:2107)
>  at 
> org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager.dumpLongRunningOperations0(GridCachePartitionExchangeManager.java:2009)
>  at 
> org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager.dumpLongRunningOperations(GridCachePartitionExchangeManager.java:2163)
>  at org.apache.ignite.internal.IgniteKernal$4.run(IgniteKernal.java:1344)
>  at 
> org.apache.ignite.internal.processors.timeout.GridTimeoutProcessor$CancelableTask.onTimeout(GridTimeoutProcessor.java:365)
>  at 
> org.apache.ignite.internal.processors.timeout.GridTimeoutProcessor$TimeoutWorker.body(GridTimeoutProcessor.java:234)
>  at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120)
>  at java.lang.Thread.run(Thread.java:748)
> Caused by: class 
> org.apache.ignite.internal.cluster.ClusterGroupEmptyCheckedException: Cluster 
> group is empty.
>  at 
> org.apache.ignite.internal.util.IgniteUtils.emptyTopologyException(IgniteUtils.java:4811)
>  at 
> org.apache.ignite.internal.processors.closure.GridClosureProcessor.callAsync(GridClosureProcessor.java:670)
>  at 
> org.apache.ignite.internal.processors.closure.GridClosureProcessor.callAsync(GridClosureProcessor.java:479)
>  at 
> org.apache.ignite.internal.IgniteComputeImpl.callAsync0(IgniteComputeImpl.java:809)
>  at 
> org.apache.ignite.internal.IgniteComputeImpl.callAsync(IgniteComputeImpl.java:794)
>  at 
> org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager.dumpLongRunningTransaction(GridCachePartitionExchangeManager.java:2106)
>  ... 7 more
> {code}
> {code:java}
> [18:53:00,809][SEVERE][grid-timeout-worker-#39][diagnostic] Could not get 
> thread dump from transaction owner near node:
> class org.apache.ignite.cluster.ClusterGroupEmptyException: Topology 
> projection is empty.
>  at org.apache.ignite.internal.util.IgniteUtils$6.apply(IgniteUtils.java:853)
>  at org.apache.ignite.internal.util.IgniteUtils$6.apply(IgniteUtils.java:851)
>  at 
> org.apache.ignite.internal.util.IgniteUtils.convertException(IgniteUtils.java:991)
>  at 
> org.apache.ignite.internal.util.future.IgniteFutureImpl.convertException(IgniteFutureImpl.java:168)
>  at 
> org.apache.ignite.internal.util.future.IgniteFutureImpl.get(IgniteFutureImpl.java:137)
>  at 
> org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$8.apply(GridCachePartitionExchangeManager.java:2112)
>  at 
> 

[jira] [Commented] (IGNITE-11708) Unable to run tests in IgniteConfigVariationsAbstractTest subclasses

2019-05-20 Thread Ivan Pavlukhin (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-11708?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16843893#comment-16843893
 ] 

Ivan Pavlukhin commented on IGNITE-11708:
-

[~ivanan.fed], thank you for keeping track on it. I left comments on 
[GitHub|https://github.com/apache/ignite/pull/6434].

> Unable to run tests in IgniteConfigVariationsAbstractTest subclasses
> 
>
> Key: IGNITE-11708
> URL: https://issues.apache.org/jira/browse/IGNITE-11708
> Project: Ignite
>  Issue Type: Bug
>Reporter: Ivan Fedotov
>Assignee: Ivan Fedotov
>Priority: Major
>  Labels: iep30
> Attachments: read_through_eviction_self_test.patch, 
> tx_out_test_fixed.patch
>
>  Time Spent: 1h 10m
>  Remaining Estimate: 0h
>
> It seems that test classes that extend from 
> IgniteConfigVariationsAbstractTest cannot be started with JUnit4 @Test 
> annotation. 
> It is easy to check: if throw exception in any test methods, nothing will 
> happen.
> Reason can be in rule chain in IgniteConfigVariationsAbstractTest class [1], 
> maybe it destroys existing test workflow.
> [1] 
> https://github.com/apache/ignite/blob/master/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteConfigVariationsAbstractTest.java#L62



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (IGNITE-10078) Node failure during concurrent partition updates may cause partition desync between primary and backup.

2019-05-20 Thread Anton Vinogradov (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-10078?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16843839#comment-16843839
 ] 

Anton Vinogradov commented on IGNITE-10078:
---

[~map7000], Could you please join the discussion as a jepsen test author?

> Node failure during concurrent partition updates may cause partition desync 
> between primary and backup.
> ---
>
> Key: IGNITE-10078
> URL: https://issues.apache.org/jira/browse/IGNITE-10078
> Project: Ignite
>  Issue Type: Bug
>Reporter: Alexei Scherbakov
>Assignee: Alexei Scherbakov
>Priority: Major
> Fix For: 2.8
>
>  Time Spent: 2.5h
>  Remaining Estimate: 0h
>
> This is possible if some updates are not written to WAL before node failure. 
> They will be not applied by rebalancing due to same partition counters in 
> certain scenario:
> 1. Start grid with 3 nodes, 2 backups.
> 2. Preload some data to partition P.
> 3. Start two concurrent transactions writing single key to the same partition 
> P, keys are different
> {noformat}
> try(Transaction tx = client.transactions().txStart(PESSIMISTIC, 
> REPEATABLE_READ, 0, 1)) {
>   client.cache(DEFAULT_CACHE_NAME).put(k, v);
>   tx.commit();
> }
> {noformat}
> 4. Order updates on backup in the way such update with max partition counter 
> is written to WAL and update with lesser partition counter failed due to 
> triggering of FH before it's added to WAL
> 5. Return failed node to grid, observe no rebalancing due to same partition 
> counters.
> Possible solution: detect gaps in update counters on recovery and force 
> rebalance from a node without gaps if detected.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Updated] (IGNITE-11592) NPE in case of continuing tx and cache stop operation.

2019-05-20 Thread Ivan Rakov (JIRA)


 [ 
https://issues.apache.org/jira/browse/IGNITE-11592?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ivan Rakov updated IGNITE-11592:

Reviewer: Eduard Shangareev  (was: Ivan Rakov)

> NPE in case of continuing tx and cache stop operation. 
> ---
>
> Key: IGNITE-11592
> URL: https://issues.apache.org/jira/browse/IGNITE-11592
> Project: Ignite
>  Issue Type: Bug
>Affects Versions: 2.7
>Reporter: Stanilovsky Evgeny
>Assignee: Stanilovsky Evgeny
>Priority: Major
> Fix For: 2.8
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Parallel cache stop and tx operations may lead to NPE.
> {code}
> java.lang.NullPointerException
>   at 
> org.apache.ignite.internal.processors.cache.CacheObjectImpl.finishUnmarshal(CacheObjectImpl.java:129)
>   at 
> org.apache.ignite.internal.processors.cache.transactions.TxEntryValueHolder.unmarshal(TxEntryValueHolder.java:151)
>   at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxEntry.unmarshal(IgniteTxEntry.java:964)
>   at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.unmarshal(IgniteTxHandler.java:306)
>   at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.prepareNearTx(IgniteTxHandler.java:338)
>   at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.processNearTxPrepareRequest0(IgniteTxHandler.java:154)
>   at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.lambda$null$0(IgniteTxHandler.java:580)
>   at 
> org.apache.ignite.internal.util.StripedExecutor$Stripe.body(StripedExecutor.java:496)
>   at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110)
>   at java.lang.Thread.run(Thread.java:748)
> {code}
> i hope that correct decision would be to roll back tx (on exchange phase) 
> participating in stopped caches.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (IGNITE-11592) NPE in case of continuing tx and cache stop operation.

2019-05-20 Thread Ivan Rakov (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-11592?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16843820#comment-16843820
 ] 

Ivan Rakov commented on IGNITE-11592:
-

[~EdShangGG], please take a look as well.

> NPE in case of continuing tx and cache stop operation. 
> ---
>
> Key: IGNITE-11592
> URL: https://issues.apache.org/jira/browse/IGNITE-11592
> Project: Ignite
>  Issue Type: Bug
>Affects Versions: 2.7
>Reporter: Stanilovsky Evgeny
>Assignee: Stanilovsky Evgeny
>Priority: Major
> Fix For: 2.8
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Parallel cache stop and tx operations may lead to NPE.
> {code}
> java.lang.NullPointerException
>   at 
> org.apache.ignite.internal.processors.cache.CacheObjectImpl.finishUnmarshal(CacheObjectImpl.java:129)
>   at 
> org.apache.ignite.internal.processors.cache.transactions.TxEntryValueHolder.unmarshal(TxEntryValueHolder.java:151)
>   at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxEntry.unmarshal(IgniteTxEntry.java:964)
>   at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.unmarshal(IgniteTxHandler.java:306)
>   at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.prepareNearTx(IgniteTxHandler.java:338)
>   at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.processNearTxPrepareRequest0(IgniteTxHandler.java:154)
>   at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.lambda$null$0(IgniteTxHandler.java:580)
>   at 
> org.apache.ignite.internal.util.StripedExecutor$Stripe.body(StripedExecutor.java:496)
>   at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110)
>   at java.lang.Thread.run(Thread.java:748)
> {code}
> i hope that correct decision would be to roll back tx (on exchange phase) 
> participating in stopped caches.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (IGNITE-10078) Node failure during concurrent partition updates may cause partition desync between primary and backup.

2019-05-20 Thread Ivan Pavlukhin (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-10078?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16843819#comment-16843819
 ] 

Ivan Pavlukhin commented on IGNITE-10078:
-

[~avinogradov], keep in mind that the fix requires that in any point in time 
there is at least one alive node in a cluster and there is always only one 
active cluster (no split brain). Otherwise inconsistency is possible.

> Node failure during concurrent partition updates may cause partition desync 
> between primary and backup.
> ---
>
> Key: IGNITE-10078
> URL: https://issues.apache.org/jira/browse/IGNITE-10078
> Project: Ignite
>  Issue Type: Bug
>Reporter: Alexei Scherbakov
>Assignee: Alexei Scherbakov
>Priority: Major
> Fix For: 2.8
>
>  Time Spent: 2.5h
>  Remaining Estimate: 0h
>
> This is possible if some updates are not written to WAL before node failure. 
> They will be not applied by rebalancing due to same partition counters in 
> certain scenario:
> 1. Start grid with 3 nodes, 2 backups.
> 2. Preload some data to partition P.
> 3. Start two concurrent transactions writing single key to the same partition 
> P, keys are different
> {noformat}
> try(Transaction tx = client.transactions().txStart(PESSIMISTIC, 
> REPEATABLE_READ, 0, 1)) {
>   client.cache(DEFAULT_CACHE_NAME).put(k, v);
>   tx.commit();
> }
> {noformat}
> 4. Order updates on backup in the way such update with max partition counter 
> is written to WAL and update with lesser partition counter failed due to 
> triggering of FH before it's added to WAL
> 5. Return failed node to grid, observe no rebalancing due to same partition 
> counters.
> Possible solution: detect gaps in update counters on recovery and force 
> rebalance from a node without gaps if detected.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (IGNITE-10078) Node failure during concurrent partition updates may cause partition desync between primary and backup.

2019-05-20 Thread Ivan Pavlukhin (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-10078?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16843814#comment-16843814
 ] 

Ivan Pavlukhin commented on IGNITE-10078:
-

[~avinogradov], anyways great stuff!

> Node failure during concurrent partition updates may cause partition desync 
> between primary and backup.
> ---
>
> Key: IGNITE-10078
> URL: https://issues.apache.org/jira/browse/IGNITE-10078
> Project: Ignite
>  Issue Type: Bug
>Reporter: Alexei Scherbakov
>Assignee: Alexei Scherbakov
>Priority: Major
> Fix For: 2.8
>
>  Time Spent: 2.5h
>  Remaining Estimate: 0h
>
> This is possible if some updates are not written to WAL before node failure. 
> They will be not applied by rebalancing due to same partition counters in 
> certain scenario:
> 1. Start grid with 3 nodes, 2 backups.
> 2. Preload some data to partition P.
> 3. Start two concurrent transactions writing single key to the same partition 
> P, keys are different
> {noformat}
> try(Transaction tx = client.transactions().txStart(PESSIMISTIC, 
> REPEATABLE_READ, 0, 1)) {
>   client.cache(DEFAULT_CACHE_NAME).put(k, v);
>   tx.commit();
> }
> {noformat}
> 4. Order updates on backup in the way such update with max partition counter 
> is written to WAL and update with lesser partition counter failed due to 
> triggering of FH before it's added to WAL
> 5. Return failed node to grid, observe no rebalancing due to same partition 
> counters.
> Possible solution: detect gaps in update counters on recovery and force 
> rebalance from a node without gaps if detected.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (IGNITE-10078) Node failure during concurrent partition updates may cause partition desync between primary and backup.

2019-05-20 Thread Anton Vinogradov (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-10078?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16843810#comment-16843810
 ] 

Anton Vinogradov commented on IGNITE-10078:
---

[~Pavlukhin], that's exactly what we're doing now :) 

> Node failure during concurrent partition updates may cause partition desync 
> between primary and backup.
> ---
>
> Key: IGNITE-10078
> URL: https://issues.apache.org/jira/browse/IGNITE-10078
> Project: Ignite
>  Issue Type: Bug
>Reporter: Alexei Scherbakov
>Assignee: Alexei Scherbakov
>Priority: Major
> Fix For: 2.8
>
>  Time Spent: 2.5h
>  Remaining Estimate: 0h
>
> This is possible if some updates are not written to WAL before node failure. 
> They will be not applied by rebalancing due to same partition counters in 
> certain scenario:
> 1. Start grid with 3 nodes, 2 backups.
> 2. Preload some data to partition P.
> 3. Start two concurrent transactions writing single key to the same partition 
> P, keys are different
> {noformat}
> try(Transaction tx = client.transactions().txStart(PESSIMISTIC, 
> REPEATABLE_READ, 0, 1)) {
>   client.cache(DEFAULT_CACHE_NAME).put(k, v);
>   tx.commit();
> }
> {noformat}
> 4. Order updates on backup in the way such update with max partition counter 
> is written to WAL and update with lesser partition counter failed due to 
> triggering of FH before it's added to WAL
> 5. Return failed node to grid, observe no rebalancing due to same partition 
> counters.
> Possible solution: detect gaps in update counters on recovery and force 
> rebalance from a node without gaps if detected.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (IGNITE-10078) Node failure during concurrent partition updates may cause partition desync between primary and backup.

2019-05-20 Thread Ivan Pavlukhin (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-10078?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16843803#comment-16843803
 ] 

Ivan Pavlukhin commented on IGNITE-10078:
-

[~avinogradov], out of curiosity, have you run these tests against Ignite 
without current fix? Could you please share results?

> Node failure during concurrent partition updates may cause partition desync 
> between primary and backup.
> ---
>
> Key: IGNITE-10078
> URL: https://issues.apache.org/jira/browse/IGNITE-10078
> Project: Ignite
>  Issue Type: Bug
>Reporter: Alexei Scherbakov
>Assignee: Alexei Scherbakov
>Priority: Major
> Fix For: 2.8
>
>  Time Spent: 2.5h
>  Remaining Estimate: 0h
>
> This is possible if some updates are not written to WAL before node failure. 
> They will be not applied by rebalancing due to same partition counters in 
> certain scenario:
> 1. Start grid with 3 nodes, 2 backups.
> 2. Preload some data to partition P.
> 3. Start two concurrent transactions writing single key to the same partition 
> P, keys are different
> {noformat}
> try(Transaction tx = client.transactions().txStart(PESSIMISTIC, 
> REPEATABLE_READ, 0, 1)) {
>   client.cache(DEFAULT_CACHE_NAME).put(k, v);
>   tx.commit();
> }
> {noformat}
> 4. Order updates on backup in the way such update with max partition counter 
> is written to WAL and update with lesser partition counter failed due to 
> triggering of FH before it's added to WAL
> 5. Return failed node to grid, observe no rebalancing due to same partition 
> counters.
> Possible solution: detect gaps in update counters on recovery and force 
> rebalance from a node without gaps if detected.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (IGNITE-10078) Node failure during concurrent partition updates may cause partition desync between primary and backup.

2019-05-20 Thread Anton Vinogradov (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-10078?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16843791#comment-16843791
 ] 

Anton Vinogradov commented on IGNITE-10078:
---

Folks, 

We're currently checking fix using brandnew jepsen's test.
We have inconsistent state at bank test [1] at master at node's failures.
Checking PR now, will let you know about the results.

[1] 
https://github.com/jepsen-io/jepsen/blob/master/ignite/src/jepsen/ignite/bank.clj

> Node failure during concurrent partition updates may cause partition desync 
> between primary and backup.
> ---
>
> Key: IGNITE-10078
> URL: https://issues.apache.org/jira/browse/IGNITE-10078
> Project: Ignite
>  Issue Type: Bug
>Reporter: Alexei Scherbakov
>Assignee: Alexei Scherbakov
>Priority: Major
> Fix For: 2.8
>
>  Time Spent: 2.5h
>  Remaining Estimate: 0h
>
> This is possible if some updates are not written to WAL before node failure. 
> They will be not applied by rebalancing due to same partition counters in 
> certain scenario:
> 1. Start grid with 3 nodes, 2 backups.
> 2. Preload some data to partition P.
> 3. Start two concurrent transactions writing single key to the same partition 
> P, keys are different
> {noformat}
> try(Transaction tx = client.transactions().txStart(PESSIMISTIC, 
> REPEATABLE_READ, 0, 1)) {
>   client.cache(DEFAULT_CACHE_NAME).put(k, v);
>   tx.commit();
> }
> {noformat}
> 4. Order updates on backup in the way such update with max partition counter 
> is written to WAL and update with lesser partition counter failed due to 
> triggering of FH before it's added to WAL
> 5. Return failed node to grid, observe no rebalancing due to same partition 
> counters.
> Possible solution: detect gaps in update counters on recovery and force 
> rebalance from a node without gaps if detected.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (IGNITE-10619) Add support files transmission between nodes over connection via CommunicationSpi

2019-05-20 Thread Alexey Goncharuk (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-10619?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16843788#comment-16843788
 ] 

Alexey Goncharuk commented on IGNITE-10619:
---

[~Mmuzaf], folks,

The current API looks too complex to me. Are there any reasons to introduce our 
own Channel, ChannelId, IgniteSocketChannel, etc... ? Ignite is not a framework 
to transfer files, so internal API should be kept as simple as possible.

I would suggest the following change to the GridIOManager:
{code}
public IgniteFuture openChannel(ClusterNode rmtNode, 
Message channelInitMessage);

public void addChannelListener(ChannelListener lsnr);

interface ChannelListener {
onChannelOpened(ClusterNode rmtNode, Message initMessage, Channel channel);
} 
{code}

The IgniteFileTransmitProcessor API also feels too redundant. The only thing 
that needs to be provided on the supplier side is an input stream/channel. I 
see no need in {{TransmitSessionFactory}} and sibling classes.

[~DmitriyGovorukhin], [~ibessonov], can you take a look at the change as well?

> Add support files transmission between nodes over connection via 
> CommunicationSpi
> -
>
> Key: IGNITE-10619
> URL: https://issues.apache.org/jira/browse/IGNITE-10619
> Project: Ignite
>  Issue Type: Sub-task
>  Components: persistence
>Reporter: Maxim Muzafarov
>Assignee: Maxim Muzafarov
>Priority: Major
>  Labels: iep-28
>
> Partition preloader must support cache partition file relocation from one 
> cluster node to another (the zero copy algorithm [1] assume to be used by 
> default). To achieve this, the file transfer machinery must be implemented at 
> Apache Ignite over Communication SPI.
> _CommunicationSpi_
> Ignite's Comminication SPI must support to:
> * establishing channel connections to the remote node to an arbitrary topic 
> (GridTopic) with predefined processing policy;
> * listening incoming channel creation events and registering connection 
> handlers on the particular node;
> * an arbitrary set of channel parameters on connection handshake;
> _FileTransmitProcessor_
> The file transmission manager must support to:
> * using different approaches of incoming data handling – buffered and direct 
> (zero-copy approach of FileChannel#transferTo);
> * transferring data by chunks of predefined size with saving intermediate 
> results;
> * re-establishing connection if an error occurs and continue file 
> upload\download;
> * limiting connection bandwidth (upload and download) at runtime;



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (IGNITE-11708) Unable to run tests in IgniteConfigVariationsAbstractTest subclasses

2019-05-20 Thread Ivan Fedotov (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-11708?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16843757#comment-16843757
 ] 

Ivan Fedotov commented on IGNITE-11708:
---

[~Pavlukhin] , I think that PR is ready for review/merge.

Could you please take a look on it?

> Unable to run tests in IgniteConfigVariationsAbstractTest subclasses
> 
>
> Key: IGNITE-11708
> URL: https://issues.apache.org/jira/browse/IGNITE-11708
> Project: Ignite
>  Issue Type: Bug
>Reporter: Ivan Fedotov
>Assignee: Ivan Fedotov
>Priority: Major
>  Labels: iep30
> Attachments: read_through_eviction_self_test.patch, 
> tx_out_test_fixed.patch
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> It seems that test classes that extend from 
> IgniteConfigVariationsAbstractTest cannot be started with JUnit4 @Test 
> annotation. 
> It is easy to check: if throw exception in any test methods, nothing will 
> happen.
> Reason can be in rule chain in IgniteConfigVariationsAbstractTest class [1], 
> maybe it destroys existing test workflow.
> [1] 
> https://github.com/apache/ignite/blob/master/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteConfigVariationsAbstractTest.java#L62



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (IGNITE-11708) Unable to run tests in IgniteConfigVariationsAbstractTest subclasses

2019-05-20 Thread Ignite TC Bot (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-11708?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16843755#comment-16843755
 ] 

Ignite TC Bot commented on IGNITE-11708:


{panel:title=-- Run :: All (Nightly): No blockers 
found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel}
[TeamCity *-- Run :: All (Nightly)* 
Results|https://ci.ignite.apache.org/viewLog.html?buildId=3825815buildTypeId=IgniteTests24Java8_RunAllNightly]

> Unable to run tests in IgniteConfigVariationsAbstractTest subclasses
> 
>
> Key: IGNITE-11708
> URL: https://issues.apache.org/jira/browse/IGNITE-11708
> Project: Ignite
>  Issue Type: Bug
>Reporter: Ivan Fedotov
>Assignee: Ivan Fedotov
>Priority: Major
>  Labels: iep30
> Attachments: read_through_eviction_self_test.patch, 
> tx_out_test_fixed.patch
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> It seems that test classes that extend from 
> IgniteConfigVariationsAbstractTest cannot be started with JUnit4 @Test 
> annotation. 
> It is easy to check: if throw exception in any test methods, nothing will 
> happen.
> Reason can be in rule chain in IgniteConfigVariationsAbstractTest class [1], 
> maybe it destroys existing test workflow.
> [1] 
> https://github.com/apache/ignite/blob/master/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteConfigVariationsAbstractTest.java#L62



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Updated] (IGNITE-9878) Failed to start near cache after second call of getOrCreateCache

2019-05-20 Thread Roman Guseinov (JIRA)


 [ 
https://issues.apache.org/jira/browse/IGNITE-9878?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Roman Guseinov updated IGNITE-9878:
---
Attachment: NearCacheIssueReproducer.java

> Failed to start near cache after second call of getOrCreateCache
> 
>
> Key: IGNITE-9878
> URL: https://issues.apache.org/jira/browse/IGNITE-9878
> Project: Ignite
>  Issue Type: Bug
>  Components: cache
>Affects Versions: 2.6
>Reporter: Roman Guseinov
>Assignee: Roman Guseinov
>Priority: Major
> Attachments: NearCacheIssueReproducer.java
>
>
> Repeated call of `Ignite.getOrCreateCache(CacheConfiguration cacheCfg, 
> NearCacheConfiguration nearCfg)` lead the following exception:
> {code:java}
> javax.cache.CacheException: class org.apache.ignite.IgniteCheckedException: 
> Failed to start near cache (local node is an affinity node for cache): 
> ignite-test-near-rep
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheUtils.convertToCacheException(GridCacheUtils.java:1305)
>   at 
> org.apache.ignite.internal.IgniteKernal.getOrCreateCache(IgniteKernal.java:2995)
>   at 
> org.apache.ignite.reproducers.cache.NearCacheIssueReproducer.testRepeatedGetOrCreateCache(NearCacheIssueReproducer.java:24)
> Caused by: class org.apache.ignite.IgniteCheckedException: Failed to start 
> near cache (local node is an affinity node for cache): ignite-test-near-rep
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareCacheChangeRequest(GridCacheProcessor.java:5235)
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.dynamicStartCache(GridCacheProcessor.java:3621)
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.dynamicStartCache(GridCacheProcessor.java:3560)
>   at 
> org.apache.ignite.internal.IgniteKernal.getOrCreateCache(IgniteKernal.java:2983)
>   ... 23 more
> {code}
> Also, if a cache is specified in the IgniteConfiguration, 
> `Ignite#getOrCreateNearCache` will fail with the following exception:
> {code:java}
> javax.cache.CacheException: class org.apache.ignite.IgniteCheckedException: 
> Failed to start near cache (a cache with the same name without near cache is 
> already started)
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheUtils.convertToCacheException(GridCacheUtils.java:1305)
>   at 
> org.apache.ignite.internal.IgniteKernal.getOrCreateNearCache(IgniteKernal.java:3072)
>   at 
> org.apache.ignite.reproducers.cache.NearCacheIssueReproducer.testGetOrCreateNearCache(NearCacheIssueReproducer.java:32)
> Caused by: class org.apache.ignite.IgniteCheckedException: Failed to start 
> near cache (a cache with the same name without near cache is already started)
>   at 
> org.apache.ignite.internal.IgniteKernal.checkNearCacheStarted(IgniteKernal.java:3085)
>   at 
> org.apache.ignite.internal.IgniteKernal.getOrCreateNearCache(IgniteKernal.java:3067)
>   ... 23 more
> {code}
> The test is attached  [^NearCacheIssueReproducer.java]. The workaround is to 
> put near cache config into cache configuration 
> `CacheConfiguration.setNearConfiguration`.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Updated] (IGNITE-9878) Failed to start near cache after second call of getOrCreateCache

2019-05-20 Thread Roman Guseinov (JIRA)


 [ 
https://issues.apache.org/jira/browse/IGNITE-9878?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Roman Guseinov updated IGNITE-9878:
---
Description: 
Repeated call of `Ignite.getOrCreateCache(CacheConfiguration cacheCfg, 
NearCacheConfiguration nearCfg)` lead the following exception:

{code:java}
javax.cache.CacheException: class org.apache.ignite.IgniteCheckedException: 
Failed to start near cache (local node is an affinity node for cache): 
ignite-test-near-rep
at 
org.apache.ignite.internal.processors.cache.GridCacheUtils.convertToCacheException(GridCacheUtils.java:1305)
at 
org.apache.ignite.internal.IgniteKernal.getOrCreateCache(IgniteKernal.java:2995)
at 
org.apache.ignite.reproducers.cache.NearCacheIssueReproducer.testRepeatedGetOrCreateCache(NearCacheIssueReproducer.java:24)
Caused by: class org.apache.ignite.IgniteCheckedException: Failed to start near 
cache (local node is an affinity node for cache): ignite-test-near-rep
at 
org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareCacheChangeRequest(GridCacheProcessor.java:5235)
at 
org.apache.ignite.internal.processors.cache.GridCacheProcessor.dynamicStartCache(GridCacheProcessor.java:3621)
at 
org.apache.ignite.internal.processors.cache.GridCacheProcessor.dynamicStartCache(GridCacheProcessor.java:3560)
at 
org.apache.ignite.internal.IgniteKernal.getOrCreateCache(IgniteKernal.java:2983)
... 23 more
{code}

Also, if a cache is specified in the IgniteConfiguration, 
`Ignite#getOrCreateNearCache` will fail with the following exception:

{code:java}
javax.cache.CacheException: class org.apache.ignite.IgniteCheckedException: 
Failed to start near cache (a cache with the same name without near cache is 
already started)
at 
org.apache.ignite.internal.processors.cache.GridCacheUtils.convertToCacheException(GridCacheUtils.java:1305)
at 
org.apache.ignite.internal.IgniteKernal.getOrCreateNearCache(IgniteKernal.java:3072)
at 
org.apache.ignite.reproducers.cache.NearCacheIssueReproducer.testGetOrCreateNearCache(NearCacheIssueReproducer.java:32)
Caused by: class org.apache.ignite.IgniteCheckedException: Failed to start near 
cache (a cache with the same name without near cache is already started)
at 
org.apache.ignite.internal.IgniteKernal.checkNearCacheStarted(IgniteKernal.java:3085)
at 
org.apache.ignite.internal.IgniteKernal.getOrCreateNearCache(IgniteKernal.java:3067)
... 23 more
{code}

The test is attached   [^NearCacheIssueReproducer.java]. The workaround is to 
put near cache config into cache configuration 
`CacheConfiguration.setNearConfiguration`.


  was:
Repeated call of `Ignite.getOrCreateCache(CacheConfiguration cacheCfg, 
NearCacheConfiguration nearCfg)` lead the following exception:

{code:java}
javax.cache.CacheException: class org.apache.ignite.IgniteCheckedException: 
Failed to start near cache (local node is an affinity node for cache): 
ignite-test-near-rep
at 
org.apache.ignite.internal.processors.cache.GridCacheUtils.convertToCacheException(GridCacheUtils.java:1305)
at 
org.apache.ignite.internal.IgniteKernal.getOrCreateCache(IgniteKernal.java:2995)
at 
org.apache.ignite.reproducers.cache.NearCacheIssueReproducer.testRepeatedGetOrCreateCache(NearCacheIssueReproducer.java:24)
Caused by: class org.apache.ignite.IgniteCheckedException: Failed to start near 
cache (local node is an affinity node for cache): ignite-test-near-rep
at 
org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareCacheChangeRequest(GridCacheProcessor.java:5235)
at 
org.apache.ignite.internal.processors.cache.GridCacheProcessor.dynamicStartCache(GridCacheProcessor.java:3621)
at 
org.apache.ignite.internal.processors.cache.GridCacheProcessor.dynamicStartCache(GridCacheProcessor.java:3560)
at 
org.apache.ignite.internal.IgniteKernal.getOrCreateCache(IgniteKernal.java:2983)
... 23 more
{code}

Also, if a cache is specified in the IgniteConfiguration, 
`Ignite#getOrCreateNearCache` will fail with the following exception:

{code:java}
javax.cache.CacheException: class org.apache.ignite.IgniteCheckedException: 
Failed to start near cache (a cache with the same name without near cache is 
already started)
at 
org.apache.ignite.internal.processors.cache.GridCacheUtils.convertToCacheException(GridCacheUtils.java:1305)
at 
org.apache.ignite.internal.IgniteKernal.getOrCreateNearCache(IgniteKernal.java:3072)
at 
org.apache.ignite.reproducers.cache.NearCacheIssueReproducer.testGetOrCreateNearCache(NearCacheIssueReproducer.java:32)
Caused by: class org.apache.ignite.IgniteCheckedException: Failed to start near 
cache (a cache with the same name without near cache is already started)
at 
org.apache.ignite.internal.IgniteKernal.checkNearCacheStarted(IgniteKernal.java:3085)
   

[jira] [Updated] (IGNITE-9878) Failed to start near cache after second call of getOrCreateCache

2019-05-20 Thread Roman Guseinov (JIRA)


 [ 
https://issues.apache.org/jira/browse/IGNITE-9878?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Roman Guseinov updated IGNITE-9878:
---
Attachment: (was: NearCacheIssueReproducer.java)

> Failed to start near cache after second call of getOrCreateCache
> 
>
> Key: IGNITE-9878
> URL: https://issues.apache.org/jira/browse/IGNITE-9878
> Project: Ignite
>  Issue Type: Bug
>  Components: cache
>Affects Versions: 2.6
>Reporter: Roman Guseinov
>Assignee: Roman Guseinov
>Priority: Major
>
> Repeated call of `Ignite.getOrCreateCache(CacheConfiguration cacheCfg, 
> NearCacheConfiguration nearCfg)` lead the following exception:
> {code:java}
> javax.cache.CacheException: class org.apache.ignite.IgniteCheckedException: 
> Failed to start near cache (local node is an affinity node for cache): 
> ignite-test-near-rep
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheUtils.convertToCacheException(GridCacheUtils.java:1305)
>   at 
> org.apache.ignite.internal.IgniteKernal.getOrCreateCache(IgniteKernal.java:2995)
>   at 
> org.apache.ignite.reproducers.cache.NearCacheIssueReproducer.testRepeatedGetOrCreateCache(NearCacheIssueReproducer.java:24)
> Caused by: class org.apache.ignite.IgniteCheckedException: Failed to start 
> near cache (local node is an affinity node for cache): ignite-test-near-rep
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareCacheChangeRequest(GridCacheProcessor.java:5235)
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.dynamicStartCache(GridCacheProcessor.java:3621)
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.dynamicStartCache(GridCacheProcessor.java:3560)
>   at 
> org.apache.ignite.internal.IgniteKernal.getOrCreateCache(IgniteKernal.java:2983)
>   ... 23 more
> {code}
> Also, if a cache is specified in the IgniteConfiguration, 
> `Ignite#getOrCreateNearCache` will fail with the following exception:
> {code:java}
> javax.cache.CacheException: class org.apache.ignite.IgniteCheckedException: 
> Failed to start near cache (a cache with the same name without near cache is 
> already started)
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheUtils.convertToCacheException(GridCacheUtils.java:1305)
>   at 
> org.apache.ignite.internal.IgniteKernal.getOrCreateNearCache(IgniteKernal.java:3072)
>   at 
> org.apache.ignite.reproducers.cache.NearCacheIssueReproducer.testGetOrCreateNearCache(NearCacheIssueReproducer.java:32)
> Caused by: class org.apache.ignite.IgniteCheckedException: Failed to start 
> near cache (a cache with the same name without near cache is already started)
>   at 
> org.apache.ignite.internal.IgniteKernal.checkNearCacheStarted(IgniteKernal.java:3085)
>   at 
> org.apache.ignite.internal.IgniteKernal.getOrCreateNearCache(IgniteKernal.java:3067)
>   ... 23 more
> {code}
> The test is attached  [^NearCacheIssueReproducer.java]. The workaround is to 
> put near cache config into cache configuration 
> `CacheConfiguration.setNearConfiguration`.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Updated] (IGNITE-9878) Failed to start near cache after second call of getOrCreateCache

2019-05-20 Thread Roman Guseinov (JIRA)


 [ 
https://issues.apache.org/jira/browse/IGNITE-9878?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Roman Guseinov updated IGNITE-9878:
---
Description: 
Repeated call of `Ignite.getOrCreateCache(CacheConfiguration cacheCfg, 
NearCacheConfiguration nearCfg)` lead the following exception:

{code:java}
javax.cache.CacheException: class org.apache.ignite.IgniteCheckedException: 
Failed to start near cache (local node is an affinity node for cache): 
ignite-test-near-rep

at 
org.apache.ignite.internal.processors.cache.GridCacheUtils.convertToCacheException(GridCacheUtils.java:1300)
at 
org.apache.ignite.internal.IgniteKernal.getOrCreateCache(IgniteKernal.java:2872)
at 
org.apache.ignite.examples.NearCacheIssueReproducer.testIgniteNearCacheReplicated(NearCacheIssueReproducer.java:29)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at 
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
at 
com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at 
com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at 
com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at 
com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Caused by: class org.apache.ignite.IgniteCheckedException: Failed to start near 
cache (local node is an affinity node for cache): ignite-test-near-rep
at 
org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareCacheChangeRequest(GridCacheProcessor.java:4302)
at 
org.apache.ignite.internal.processors.cache.GridCacheProcessor.dynamicStartCache(GridCacheProcessor.java:2877)
at 
org.apache.ignite.internal.processors.cache.GridCacheProcessor.dynamicStartCache(GridCacheProcessor.java:2816)
at 
org.apache.ignite.internal.IgniteKernal.getOrCreateCache(IgniteKernal.java:2860)
... 23 more
{code}

Also, if a cache is specified in the IgniteConfiguration, 
`Ignite#getOrCreateNearCache` will fail with the following exception:

{code:java}
javax.cache.CacheException: class org.apache.ignite.IgniteCheckedException: 
Failed to start near cache (a cache with the same name without near cache is 
already started)
at 
org.apache.ignite.internal.processors.cache.GridCacheUtils.convertToCacheException(GridCacheUtils.java:1305)
at 
org.apache.ignite.internal.IgniteKernal.getOrCreateNearCache(IgniteKernal.java:3072)
at 
org.apache.ignite.reproducers.cache.NearCacheIssueReproducer.testGetOrCreateNearCache(NearCacheIssueReproducer.java:32)
Caused by: class org.apache.ignite.IgniteCheckedException: Failed to start near 
cache (a cache with the same name without near cache is already started)
at 
org.apache.ignite.internal.IgniteKernal.checkNearCacheStarted(IgniteKernal.java:3085)
at 
org.apache.ignite.internal.IgniteKernal.getOrCreateNearCache(IgniteKernal.java:3067)
... 23 more
{code}

The test is attached  [^NearCacheIssueReproducer.java]. The workaround is to 
put near cache config into cache configuration 
`CacheConfiguration.setNearConfiguration`.


  was:
Repeated call of `Ignite.getOrCreateCache(CacheConfiguration cacheCfg, 
NearCacheConfiguration nearCfg)` lead the following exception:

{code:java}
javax.cache.CacheException: class org.apache.ignite.IgniteCheckedException: 
Failed to start near cache (local node is an affinity node for cache): 
ignite-test-near-rep

at 

[jira] [Updated] (IGNITE-9878) Failed to start near cache after second call of getOrCreateCache

2019-05-20 Thread Roman Guseinov (JIRA)


 [ 
https://issues.apache.org/jira/browse/IGNITE-9878?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Roman Guseinov updated IGNITE-9878:
---
Description: 
Repeated call of `Ignite.getOrCreateCache(CacheConfiguration cacheCfg, 
NearCacheConfiguration nearCfg)` lead the following exception:

{code:java}
javax.cache.CacheException: class org.apache.ignite.IgniteCheckedException: 
Failed to start near cache (local node is an affinity node for cache): 
ignite-test-near-rep
at 
org.apache.ignite.internal.processors.cache.GridCacheUtils.convertToCacheException(GridCacheUtils.java:1305)
at 
org.apache.ignite.internal.IgniteKernal.getOrCreateCache(IgniteKernal.java:2995)
at 
org.apache.ignite.reproducers.cache.NearCacheIssueReproducer.testRepeatedGetOrCreateCache(NearCacheIssueReproducer.java:24)
Caused by: class org.apache.ignite.IgniteCheckedException: Failed to start near 
cache (local node is an affinity node for cache): ignite-test-near-rep
at 
org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareCacheChangeRequest(GridCacheProcessor.java:5235)
at 
org.apache.ignite.internal.processors.cache.GridCacheProcessor.dynamicStartCache(GridCacheProcessor.java:3621)
at 
org.apache.ignite.internal.processors.cache.GridCacheProcessor.dynamicStartCache(GridCacheProcessor.java:3560)
at 
org.apache.ignite.internal.IgniteKernal.getOrCreateCache(IgniteKernal.java:2983)
... 23 more
{code}

Also, if a cache is specified in the IgniteConfiguration, 
`Ignite#getOrCreateNearCache` will fail with the following exception:

{code:java}
javax.cache.CacheException: class org.apache.ignite.IgniteCheckedException: 
Failed to start near cache (a cache with the same name without near cache is 
already started)
at 
org.apache.ignite.internal.processors.cache.GridCacheUtils.convertToCacheException(GridCacheUtils.java:1305)
at 
org.apache.ignite.internal.IgniteKernal.getOrCreateNearCache(IgniteKernal.java:3072)
at 
org.apache.ignite.reproducers.cache.NearCacheIssueReproducer.testGetOrCreateNearCache(NearCacheIssueReproducer.java:32)
Caused by: class org.apache.ignite.IgniteCheckedException: Failed to start near 
cache (a cache with the same name without near cache is already started)
at 
org.apache.ignite.internal.IgniteKernal.checkNearCacheStarted(IgniteKernal.java:3085)
at 
org.apache.ignite.internal.IgniteKernal.getOrCreateNearCache(IgniteKernal.java:3067)
... 23 more
{code}

The test is attached  [^NearCacheIssueReproducer.java]. The workaround is to 
put near cache config into cache configuration 
`CacheConfiguration.setNearConfiguration`.


  was:
Repeated call of `Ignite.getOrCreateCache(CacheConfiguration cacheCfg, 
NearCacheConfiguration nearCfg)` lead the following exception:

{code:java}
javax.cache.CacheException: class org.apache.ignite.IgniteCheckedException: 
Failed to start near cache (local node is an affinity node for cache): 
ignite-test-near-rep

at 
org.apache.ignite.internal.processors.cache.GridCacheUtils.convertToCacheException(GridCacheUtils.java:1300)
at 
org.apache.ignite.internal.IgniteKernal.getOrCreateCache(IgniteKernal.java:2872)
at 
org.apache.ignite.examples.NearCacheIssueReproducer.testIgniteNearCacheReplicated(NearCacheIssueReproducer.java:29)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at 
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
at 
com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at