[ 
https://issues.apache.org/jira/browse/IGNITE-12445?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Roman Koriakov updated IGNITE-12445:
------------------------------------
    Attachment: Events.zip

> 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)

Reply via email to