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

Roman Puchkovskiy updated IGNITE-28235:
---------------------------------------
    Description: 
In WatchProcessor, all processed events (revision creations and idle safe time 
advances) are linearized. Each produces a future, and the futures are chained 
one after another so that next event starts being handled only after the 
previous one has been fully handled.

The effect of such chaining is that if a watch listener fails with an 
exception, the whole chain fails with that exception, AND each subsequent event 
will fail with the same initial exception. For this reason, it makes sense to 
only log the initial exception and avoid logging it more (for subsequent event 
failures). This is what we do in WatchProcessor.

Recently, additional logging was added on top of that in UpdateEntriesEvent. 
This results in a storm of logging after the watch notification chain is 
broken, and the logs are useless as they all duplicate the same initial 
exception.

This already happened before, so, apart from removing that additional logging, 
we need to add a test making sure that the exception is only logged once.

> Broken watch notification chain logs initial exception over and over
> --------------------------------------------------------------------
>
>                 Key: IGNITE-28235
>                 URL: https://issues.apache.org/jira/browse/IGNITE-28235
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Roman Puchkovskiy
>            Assignee: Roman Puchkovskiy
>            Priority: Major
>              Labels: ignite-3
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> In WatchProcessor, all processed events (revision creations and idle safe 
> time advances) are linearized. Each produces a future, and the futures are 
> chained one after another so that next event starts being handled only after 
> the previous one has been fully handled.
> The effect of such chaining is that if a watch listener fails with an 
> exception, the whole chain fails with that exception, AND each subsequent 
> event will fail with the same initial exception. For this reason, it makes 
> sense to only log the initial exception and avoid logging it more (for 
> subsequent event failures). This is what we do in WatchProcessor.
> Recently, additional logging was added on top of that in UpdateEntriesEvent. 
> This results in a storm of logging after the watch notification chain is 
> broken, and the logs are useless as they all duplicate the same initial 
> exception.
> This already happened before, so, apart from removing that additional 
> logging, we need to add a test making sure that the exception is only logged 
> once.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to