Mikhail Petrov created IGNITE-14006: ---------------------------------------
Summary: Node fails with assertion error during event listener registration Key: IGNITE-14006 URL: https://issues.apache.org/jira/browse/IGNITE-14006 Project: Ignite Issue Type: Bug Reporter: Mikhail Petrov Node fails with assertion error during event listener registration from client node in case the remote filter class is missing on one or more server nodes: {code:java} [2021-01-17 15:49:00,313][ERROR][disco-notifier-worker-#83%continuous.CacheContinuousQueryExternalNodeFilterTest1%][IgniteTestResources] Critical system error detected. Will be handled accordingly to configured handler [hnd=StopNodeOrHaltFailureHandler [tryStop=false, timeout=0, super=AbstractFailureHandler [ignoredFailureTypes=UnmodifiableSet [SYSTEM_WORKER_BLOCKED, SYSTEM_CRITICAL_OPERATION_TIMEOUT]]], failureCtx=FailureContext [type=SYSTEM_WORKER_TERMINATION, err=java.lang.AssertionError]] java.lang.AssertionError at org.apache.ignite.internal.processors.continuous.GridContinuousProcessor$LocalRoutineInfo.<init>(GridContinuousProcessor.java:2117) at org.apache.ignite.internal.processors.continuous.GridContinuousProcessor.processStartRequest(GridContinuousProcessor.java:1447) at org.apache.ignite.internal.processors.continuous.GridContinuousProcessor.access$400(GridContinuousProcessor.java:117) at org.apache.ignite.internal.processors.continuous.GridContinuousProcessor$2.onCustomEvent(GridContinuousProcessor.java:220) at org.apache.ignite.internal.processors.continuous.GridContinuousProcessor$2.onCustomEvent(GridContinuousProcessor.java:211) at org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$4.onDiscovery0(GridDiscoveryManager.java:670) at org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$4.lambda$onDiscovery$0(GridDiscoveryManager.java:533) at org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryMessageNotifierWorker.body0(GridDiscoveryManager.java:2635) at org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryMessageNotifierWorker.body(GridDiscoveryManager.java:2673) at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120) at java.lang.Thread.run(Thread.java:748) {code} Reproducer: {code:java} /** */ public class CacheContinuousQueryExternalNodeFilterTest extends GridCommonAbstractTest { /** */ private static final String EXT_EVT_FILTER_CLS = "org.apache.ignite.tests.p2p.TestPredicate"; /** */ private static final URL[] URLS; static { try { URLS = new URL[] {new URL(getProperty("p2p.uri.cls.second"))}; } catch (MalformedURLException e) { throw new RuntimeException(e); } } /** */ private final ClassLoader extLdr = getExternalClassLoader(); /** */ private final ClassLoader secondExtLdr = new URLClassLoader(URLS, U.gridClassLoader()); /** {@inheritDoc} */ @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception { IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName); cfg.setPeerClassLoadingEnabled(false); cfg.setFailureHandler(new StopNodeOrHaltFailureHandler()); if (getTestIgniteInstanceName(0).equals(igniteInstanceName)) cfg.setClassLoader(secondExtLdr); else cfg.setClassLoader(extLdr); return cfg; } /** */ @Test public void test() throws Exception { startGrids(2); IgniteEx cli = startClientGrid(2); extLdr.loadClass(EXT_EVT_FILTER_CLS); Class<IgnitePredicate<CacheEvent>> rmtFilter = (Class<IgnitePredicate<CacheEvent>>)extLdr .loadClass(EXT_EVT_FILTER_CLS); try { cli.events().remoteListen(null, rmtFilter.newInstance(), EVT_CACHE_OBJECT_PUT); } catch (Throwable ignored) { // No-op. } // waits for all node to handle an error occurred during processing of StartRoutineDiscoveryMessage U.sleep(3000); } } {code} To run the mentioned above reproducer place the following class to modules/extdata/p2p/src/main/java/org/apache/ignite/tests/p2p/ {code:java} /** */ public class CacheEventPredicate implements IgnitePredicate<CacheEvent> { /** {@inheritDoc} */ @Override public boolean apply(CacheEvent evt) { return false; } } {code} and rebuild modules/extdata/p2p module. -- This message was sent by Atlassian Jira (v8.3.4#803005)