You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Denis Garus (Jira)" <ji...@apache.org> on 2020/05/14 09:21:00 UTC

[jira] [Created] (IGNITE-13010) A local listener for cache events with type EVT_CACHE_STOPPED does not get a cache event from a remote node.

Denis Garus created IGNITE-13010:
------------------------------------

             Summary: A local listener for cache events with type EVT_CACHE_STOPPED does not get a cache event from a remote node.
                 Key: IGNITE-13010
                 URL: https://issues.apache.org/jira/browse/IGNITE-13010
             Project: Ignite
          Issue Type: Bug
    Affects Versions: 2.8
            Reporter: Denis Garus


A local listener for cache events with type EVT_CACHE_STOPPED does not get a cache event from a remote node. 
That occurs due to NPE on a remote node:
{code:java}
[2020-05-14 12:07:25,623][ERROR][sys-#206%security.NpeGridEventConsumeHandlerReproducer2%][GridEventConsumeHandler] Failed to send event notification to node: 55671ec1-dad9-452b-8ab2-4b7916c00000[2020-05-14 12:07:25,623][ERROR][sys-#206%security.NpeGridEventConsumeHandlerReproducer2%][GridEventConsumeHandler] Failed to send event notification to node: 55671ec1-dad9-452b-8ab2-4b7916c00000java.lang.NullPointerException at org.apache.ignite.internal.GridEventConsumeHandler$2$1.run(GridEventConsumeHandler.java:238) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834)
{code}
The reproducer:


{code:java}
public class NpeGridEventConsumeHandlerReproducer extends GridCommonAbstractTest {

    private static AtomicInteger rmtCounter = new AtomicInteger();
    private static AtomicInteger locCounter = new AtomicInteger();

    @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
        return super.getConfiguration(igniteInstanceName).setIncludeEventTypes(EVT_CACHE_STOPPED);
    }

    @Test
    public void test() throws Exception {
        startGrids(3);
        
        grid(1).createCache(new CacheConfiguration<>("test_cache"));

        grid(0).events().remoteListen((uuid, evt) ->{
         locCounter.incrementAndGet();
         return true;
        }, evt->{
            rmtCounter.incrementAndGet();
            return true;
        }, EVT_CACHE_STOPPED);

        grid(1).destroyCache("test_cache");

        TimeUnit.SECONDS.sleep(10);

        assertEquals(rmtCounter.get(), locCounter.get());
    }
}
{code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)