[
https://issues.apache.org/jira/browse/IGNITE-12445?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Roman Koriakov updated IGNITE-12445:
------------------------------------
Attachment: Stop watching this issue.url
> When Cache Metrics are switched on (statisticsEnabled = true) the empty cache
> events arrive to the client nodes
> ----------------------------------------------------------------------------------------------------------------
>
> Key: IGNITE-12445
> URL: https://issues.apache.org/jira/browse/IGNITE-12445
> Project: Ignite
> Issue Type: Bug
> Components: general
> Affects Versions: 2.7.6
> Environment: OS Name Microsoft Windows 10 Pro
> java version "1.8.0_231"
> java version OpenJDK 64-Bit Server VM 11+28
> Reporter: Roman Koriakov
> Priority: Major
> Attachments: Events.zip
>
>
> If we want to react on some PUT or READ cache operations first of all we need
> to turn on the appropriate cache events on the server node and catch those
> events on the client nodes using remote approach with two listeners. It works
> well until we switch on *statisticsEnabled* on the server node, it will lead
> to the situation when we get empty *CacheEvent* objects.
> The example that demonstrates this issue is in the attachments. This example
> is consists of three nodes: 1 server node with cache and 2 clients. One
> client is filling the cache and the second one is listening PUT operations.
> When we turn on Cache Metrics on the server node:
> *cacheConfig.setStatisticsEnabled(true);* in *EventServerCache.java* we get
> empty events ({color:#172b4d}Sometimes {color}CacheEvent objects with null
> fields. Sometimes there are no events at all)
> My suppose is there is some Exception in GridCacheEventManager.addEvent()
> when Cache Metrics is turned on.
> {color:#cc7832}catch {color}(Exception e) {
> {color:#cc7832}if
> {color}(!{color:#9876aa}cctx{color}.cacheObjectContext().kernalContext().cacheObjects().isBinaryEnabled({color:#9876aa}cctx{color}.config()))
> {color:#cc7832}throw {color}e{color:#cc7832};{color}{color:#cc7832} if
> {color}({color:#9876aa}log{color}.isDebugEnabled())
> {color:#9876aa}log{color}.debug({color:#6a8759}"Failed to unmarshall
> cache object value for the event notification: " {color}+
> e){color:#cc7832};{color}{color:#cc7832} {color}
> {color:#cc7832} if {color}(!{color:#9876aa}forceKeepBinary{color})
> LT.warn({color:#9876aa}log{color}{color:#cc7832},
> {color}{color:#6a8759}"Failed to unmarshall cache object value for the event
> notification " {color}+
> {color:#6a8759}"(all further notifications will keep binary
> object format)."{color}){color:#cc7832};{color}
> {color:#9876aa} forceKeepBinary {color}= {color:#cc7832}true;{color}
> key0 =
> {color:#9876aa}cctx{color}.cacheObjectContext().unwrapBinaryIfNeeded(key{color:#cc7832},
> true, false{color}){color:#cc7832};{color}
> val0 =
> {color:#9876aa}cctx{color}.cacheObjectContext().unwrapBinaryIfNeeded(newVal{color:#cc7832},
> true, false{color}){color:#cc7832};{color}
> oldVal0 =
> {color:#9876aa}cctx{color}.cacheObjectContext().unwrapBinaryIfNeeded(oldVal{color:#cc7832},
> true, false{color}){color:#cc7832};{color}
> }
--
This message was sent by Atlassian Jira
(v8.3.4#803005)