You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Caleb Rackliffe (Jira)" <ji...@apache.org> on 2022/07/01 03:26:00 UTC

[jira] [Updated] (CASSANDRA-17706) Fix testRemoteStreamFailure

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

Caleb Rackliffe updated CASSANDRA-17706:
----------------------------------------
    Test and Documentation Plan: n/a
                         Status: Patch Available  (was: In Progress)

The patch here basically just relaxes the synchronization on {{StreamSession#onError()}}, which allows error handling to proceed even if multiple threads arrive there, avoiding the possibility that waiting for the result of sending the failure message can cause a deadlock. (i.e. Processing a failure on a send initiated from {{onError()}} can end up right back in {{onError()}}, which is logically reentrant but doesn't happen on literally the same thread.) This shouldn't really be a problem, given {{closeSession()}} itself is still synchronized, we still won't send a failure message if channels are closed, and we now just use {{awaitUninterruptibly()}} instead of {{syncUninterruptibly()}} (and avoid re-throwing if an error occurs).

|[trunk|https://github.com/apache/cassandra/pull/1713]|[CircleCI|https://app.circleci.com/pipelines/github/maedhroz/cassandra?branch=CASSANDRA-17706-trunk&filter=all]|

> Fix testRemoteStreamFailure
> ---------------------------
>
>                 Key: CASSANDRA-17706
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-17706
>             Project: Cassandra
>          Issue Type: Bug
>          Components: CI
>            Reporter: Ekaterina Dimitrova
>            Assignee: Caleb Rackliffe
>            Priority: Normal
>             Fix For: 4.0.x, 4.1.x, 4.x
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> Failing on trunk: 
> {code:java}
> Error Message
> java.util.concurrent.TimeoutException
> Stacktrace
> java.lang.RuntimeException: java.util.concurrent.TimeoutException at org.apache.cassandra.utils.Throwables.maybeFail(Throwables.java:73) at org.apache.cassandra.utils.FBUtilities.waitOnFutures(FBUtilities.java:509) at org.apache.cassandra.distributed.impl.AbstractCluster.close(AbstractCluster.java:1028) at org.apache.cassandra.distributed.test.RepairErrorsTest.testRemoteStreamFailure(RepairErrorsTest.java:179) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) Caused by: java.util.concurrent.TimeoutException at org.apache.cassandra.utils.concurrent.AbstractFuture.get(AbstractFuture.java:253) at org.apache.cassandra.utils.FBUtilities.waitOnFutures(FBUtilities.java:501)
> {code}
>  



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

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org