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

Alexander Lapin updated IGNITE-23675:
-------------------------------------
    Description: 
h3. Motivation

Following assertions aren't logged
{code:java}
    private CompletableFuture<?> completeInternal(long causalityToken) {
        synchronized (updateMutex) {
            assert expectedToken == -1 || expectedToken == causalityToken
                    : String.format("Causality token mismatch, expected %d, got 
%d", expectedToken, causalityToken);
            assert causalityToken > lastCompleteToken : String.format(
                    "Causality token must be greater than the last completed: 
[token=%s, lastCompleted=%s]", causalityToken,
                    lastCompleteToken);
            assert causalityToken > lastDeletedToken : String.format(
                    "Causality token must be greater than the last deleted: 
[token=%s, lastDeleted=%s]", causalityToken,
                    lastDeletedToken);
 
{code}
and notificationFuture in WatchProcessor is hanged forever.

 

In order to fix that 
{code:java}
                .whenCompleteAsync((unused, throwable) -> {
                    if (throwable != null) {
                        LOG.error("Failed to notify watches.", throwable);
                        
notifyFailureHandlerOnFirstFailureInNotificationChain(throwable);
                    }
                }, watchExecutor)
{code}
or similar should be added to WatchProcessor#notificationFuture exception 
handling.

That will highlight some 
[flaky|https://ci.ignite.apache.org/buildConfiguration/ApacheIgnite3xGradle_Test_RunAllTests/8617621?expandBuildDeploymentsSection=false&hideTestsFromDependencies=false&hideProblemsFromDependencies=false&expandBuildProblemsSection=true&expandCode+Inspection=true]
 tests that should be fixed - this is the biggest difficulty here.

  was:
h3. Motivation
{code:java}
                .whenCompleteAsync((unused, throwable) -> {
                    if (throwable != null) {
                        LOG.error("Failed to notify watches.", throwable);
                        
notifyFailureHandlerOnFirstFailureInNotificationChain(throwable);
                    }
                }, watchExecutor)
{code}
or similar should be added to WatchProcessor#notificationFuture exception 
handling.

That will highlight some 
[flaky|https://ci.ignite.apache.org/buildConfiguration/ApacheIgnite3xGradle_Test_RunAllTests/8617621?expandBuildDeploymentsSection=false&hideTestsFromDependencies=false&hideProblemsFromDependencies=false&expandBuildProblemsSection=true&expandCode+Inspection=true]
 tests that should be fixed - this is the biggest difficulty here.


> WatchProcessor#notifyWatches:notificationFuture exception handling is missing
> -----------------------------------------------------------------------------
>
>                 Key: IGNITE-23675
>                 URL: https://issues.apache.org/jira/browse/IGNITE-23675
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Alexander Lapin
>            Priority: Major
>              Labels: ignite-3
>
> h3. Motivation
> Following assertions aren't logged
> {code:java}
>     private CompletableFuture<?> completeInternal(long causalityToken) {
>         synchronized (updateMutex) {
>             assert expectedToken == -1 || expectedToken == causalityToken
>                     : String.format("Causality token mismatch, expected %d, 
> got %d", expectedToken, causalityToken);
>             assert causalityToken > lastCompleteToken : String.format(
>                     "Causality token must be greater than the last completed: 
> [token=%s, lastCompleted=%s]", causalityToken,
>                     lastCompleteToken);
>             assert causalityToken > lastDeletedToken : String.format(
>                     "Causality token must be greater than the last deleted: 
> [token=%s, lastDeleted=%s]", causalityToken,
>                     lastDeletedToken);
>  
> {code}
> and notificationFuture in WatchProcessor is hanged forever.
>  
> In order to fix that 
> {code:java}
>                 .whenCompleteAsync((unused, throwable) -> {
>                     if (throwable != null) {
>                         LOG.error("Failed to notify watches.", throwable);
>                         
> notifyFailureHandlerOnFirstFailureInNotificationChain(throwable);
>                     }
>                 }, watchExecutor)
> {code}
> or similar should be added to WatchProcessor#notificationFuture exception 
> handling.
> That will highlight some 
> [flaky|https://ci.ignite.apache.org/buildConfiguration/ApacheIgnite3xGradle_Test_RunAllTests/8617621?expandBuildDeploymentsSection=false&hideTestsFromDependencies=false&hideProblemsFromDependencies=false&expandBuildProblemsSection=true&expandCode+Inspection=true]
>  tests that should be fixed - this is the biggest difficulty here.



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

Reply via email to