Hello, Igniters.
I recently noticed that if the client node failed to register the CQ handler during CQ start, the start of CQ succeeds despite this. In this case, the error message appears in the client log. It can be something like this: [2020-04-13 09:20:48,315][ERROR][disco-notifier-worker-#84%continuous.ContinuousQueryRemoteFilterMissingInClassPathSelfTest2%][GridContinuousProcessor] Failed to register handler [nodeId=aa8e3541-0b93-40f7-8310-3f3a7e600001, routineId=6fb6f0e9-4c30-46d2-9cf2-1765e0b3c9be] class org.apache.ignite.IgniteCheckedException: org.apache.ignite.tests.p2p.CacheDeploymentCacheEntryEventSerializableFilter at org.apache.ignite.internal.processors.continuous.GridContinuousProcessor.processStartRequest(GridContinuousProcessor.java:1385) 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) The test [1] demonstrates this behavior as valid. Can someone please clarify why this behavior is considered valid? Moreover, are there any reasons for sending the CQ registration message to client nodes given that there is no data on them? I'll appreciate any thoughts. [1] - https://github.com/apache/ignite/blob/master/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/ContinuousQueryRemoteFilterMissingInClassPathSelfTest.java#L223 Regards, Mikhail. |
Mikhail,
I think you've answered your first question in your second question. The CQ handler on client nodes does not make sense because there is no data on client nodes that can be notified of, therefore there is no reason to fail the CQ as it does not affect the execution in any way. As for the message being sent to clients - if I remember correctly, there were no mechanics to filter out discovery messages to exclude clients. Perhaps, such a mechanics can be introduced to the SPI to resolve this issue. пн, 13 апр. 2020 г. в 09:33, Mikhail Petrov <[hidden email]>: > Hello, Igniters. > > I recently noticed that if the client node failed to register the CQ > handler during CQ start, the start of CQ succeeds despite this. > > In this case, the error message appears in the client log. It can be > something like this: > > [2020-04-13 > 09:20:48,315][ERROR][disco-notifier-worker-#84%continuous.ContinuousQueryRemoteFilterMissingInClassPathSelfTest2%][GridContinuousProcessor] > > Failed to register handler [nodeId=aa8e3541-0b93-40f7-8310-3f3a7e600001, > routineId=6fb6f0e9-4c30-46d2-9cf2-1765e0b3c9be] > class org.apache.ignite.IgniteCheckedException: > > org.apache.ignite.tests.p2p.CacheDeploymentCacheEntryEventSerializableFilter > at > > org.apache.ignite.internal.processors.continuous.GridContinuousProcessor.processStartRequest(GridContinuousProcessor.java:1385) > 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) > > The test [1] demonstrates this behavior as valid. > > > Can someone please clarify why this behavior is considered valid? > > Moreover, are there any reasons for sending the CQ registration message > to client nodes given that there is no data on them? > > I'll appreciate any thoughts. > > > [1] - > > https://github.com/apache/ignite/blob/master/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/ContinuousQueryRemoteFilterMissingInClassPathSelfTest.java#L223 > > Regards, > Mikhail. > > |
Alexey,
Thanks for clarification. I think that is all I wanted to know. Thank you. On 13.04.2020 11:43, Alexey Goncharuk wrote: > Mikhail, > > I think you've answered your first question in your second question. The > CQ handler on client nodes does not make sense because there is no data on > client nodes that can be notified of, therefore there is no reason to fail > the CQ as it does not affect the execution in any way. > > As for the message being sent to clients - if I remember correctly, there > were no mechanics to filter out discovery messages to exclude clients. > Perhaps, such a mechanics can be introduced to the SPI to resolve > this issue. > > пн, 13 апр. 2020 г. в 09:33, Mikhail Petrov <[hidden email]>: > >> Hello, Igniters. >> >> I recently noticed that if the client node failed to register the CQ >> handler during CQ start, the start of CQ succeeds despite this. >> >> In this case, the error message appears in the client log. It can be >> something like this: >> >> [2020-04-13 >> 09:20:48,315][ERROR][disco-notifier-worker-#84%continuous.ContinuousQueryRemoteFilterMissingInClassPathSelfTest2%][GridContinuousProcessor] >> >> Failed to register handler [nodeId=aa8e3541-0b93-40f7-8310-3f3a7e600001, >> routineId=6fb6f0e9-4c30-46d2-9cf2-1765e0b3c9be] >> class org.apache.ignite.IgniteCheckedException: >> >> org.apache.ignite.tests.p2p.CacheDeploymentCacheEntryEventSerializableFilter >> at >> >> org.apache.ignite.internal.processors.continuous.GridContinuousProcessor.processStartRequest(GridContinuousProcessor.java:1385) >> 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) >> >> The test [1] demonstrates this behavior as valid. >> >> >> Can someone please clarify why this behavior is considered valid? >> >> Moreover, are there any reasons for sending the CQ registration message >> to client nodes given that there is no data on them? >> >> I'll appreciate any thoughts. >> >> >> [1] - >> >> https://github.com/apache/ignite/blob/master/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/ContinuousQueryRemoteFilterMissingInClassPathSelfTest.java#L223 >> >> Regards, >> Mikhail. >> >> |
Free forum by Nabble | Edit this page |