ignite-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Pavel Pereslegin (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (IGNITE-6346) Distributed set does not work in REPLICATED mode
Date Fri, 31 Aug 2018 16:50:00 GMT

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

Pavel Pereslegin commented on IGNITE-6346:
------------------------------------------

Hello [~vk].

I've faced with the same problem and found that this bug also applies to server nodes.
In collection configuration we can specify node filter which will exclude some server nodes
from affinity.
Reproducer for server node:
{code:java}
    Ignite node = startGridsMultiThreaded(2);

    ClusterNode locNode = node.cluster().localNode();

    IgniteSet<Integer> set = node.set("test",
        new CollectionConfiguration().setCacheMode(CacheMode.REPLICATED).setNodeFilter(n ->
!locNode.equals(n)));

    set.add(1);

    assertTrue(set.iterator().hasNext());
{code}

So I think that it would be better to check that the current node is an affinity node.
{code:java}
if (ctx.isLocal() || (ctx.isReplicated() && ctx.affinityNode()))
{code}

What do you think?

> Distributed set does not work in REPLICATED mode
> ------------------------------------------------
>
>                 Key: IGNITE-6346
>                 URL: https://issues.apache.org/jira/browse/IGNITE-6346
>             Project: Ignite
>          Issue Type: Bug
>          Components: data structures
>    Affects Versions: 2.1
>            Reporter: Valentin Kulichenko
>            Assignee: vk
>            Priority: Major
>
> When {{IgniteSet}} is created with {{REPLICATED}} cache mode, any attempt to read it
fails with exception:
> {noformat}
> Exception in thread "main" class org.apache.ignite.IgniteException: Cluster group is
empty.
> 	at org.apache.ignite.internal.util.lang.GridIteratorAdapter.hasNext(GridIteratorAdapter.java:48)
> 	at ReplicatedSet.main(ReplicatedSet.java:36)
> 	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 com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
> Caused by: class org.apache.ignite.internal.cluster.ClusterGroupEmptyCheckedException:
Cluster group is empty.
> 	at org.apache.ignite.internal.processors.cache.query.GridCacheQueryAdapter.execute0(GridCacheQueryAdapter.java:481)
> 	at org.apache.ignite.internal.processors.cache.query.GridCacheQueryAdapter.execute(GridCacheQueryAdapter.java:442)
> 	at org.apache.ignite.internal.processors.datastructures.GridCacheSetImpl.iterator0(GridCacheSetImpl.java:420)
> 	at org.apache.ignite.internal.processors.datastructures.GridCacheSetImpl.iterator(GridCacheSetImpl.java:375)
> 	at org.apache.ignite.internal.processors.datastructures.GridCacheSetProxy.iterator(GridCacheSetProxy.java:342)
> 	... 6 more
> {noformat}
> To reproduce run the following code:
> {code}
> Ignition.start(new IgniteConfiguration().setIgniteInstanceName("server-1"));
> Ignition.start(new IgniteConfiguration().setIgniteInstanceName("server-2"));
> Ignition.setClientMode(true);
> Ignite ignite = Ignition.start();
> IgniteSet<String> set = ignite.set("my-set", new CollectionConfiguration().setCacheMode(CacheMode.REPLICATED));
> for (String s : set) {
>     System.out.println(s);
> }
> {code}



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

Mime
View raw message