[ 
https://issues.apache.org/jira/browse/CASSANDRA-18393?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17760314#comment-17760314
 ] 

Berenguer Blasi edited comment on CASSANDRA-18393 at 8/30/23 10:03 AM:
-----------------------------------------------------------------------

The test 
[sets/hacks|https://github.com/apache/cassandra/blob/cassandra-5.0/test/unit/org/apache/cassandra/cql3/validation/operations/InsertUpdateIfConditionTest.java#L96]
 the upgrade version and we can see a small hack there were node 2 is 
[added|https://github.com/apache/cassandra/blob/cassandra-5.0/test/unit/org/apache/cassandra/Util.java#L1099].
 This is to prevent the Gossiper upgrade from version supplier from short 
cutting 
[here|https://github.com/apache/cassandra/blob/cassandra-5.0/src/java/org/apache/cassandra/gms/Gossiper.java#L235],
 otherwise it will return the node's default version.

The problem is when node2 is added by the test but on a slow env the Gossiper 
removes it as if it were a fat client:

_[junit-timeout] INFO  [GossipTasks:1] 2023-08-29 12:32:31,843 
Gossiper.java:1119 - FatClient /127.0.0.2:7012 has been silent for 1000ms, 
removing from gossip_

That will trigger the failure we're seeing. The fix is to spin assert the 
version setup. We can see [5K green 
repeats|https://app.circleci.com/pipelines/github/bereng/cassandra/1051/workflows/0f339cc5-7dcd-4798-8202-6d4f2ae2bb0d/jobs/27078]
 whereas that was impossible before the fix.

The current PR is WIP set up for review for validation of the solution only. If 
we're happy with it I will clean logging, remove some extra methods from the 
prior ticket and make it pretty.


was (Author: bereng):
The test 
[sets/hacks|https://github.com/apache/cassandra/blob/cassandra-5.0/test/unit/org/apache/cassandra/cql3/validation/operations/InsertUpdateIfConditionTest.java#L96]
 the upgrade version and we can see a small hack there were node 2 is 
[added|https://github.com/apache/cassandra/blob/cassandra-5.0/test/unit/org/apache/cassandra/Util.java#L1099].
 This is to prevent the Gossiper upgrade from version supplier from short 
cutting 
[here|https://github.com/apache/cassandra/blob/cassandra-5.0/src/java/org/apache/cassandra/gms/Gossiper.java#L235],
 otherwise it will return the node's default version.

The problem is when node2 is added by the test but on a slow env the Gossiper 
removes it as if it were a fat client:

_[junit-timeout] INFO  [GossipTasks:1] 2023-08-29 12:32:31,843 
Gossiper.java:1119 - FatClient /127.0.0.2:7012 has been silent for 1000ms, 
removing from gossip_

That will trigger the failure we're seeing. The fix is to spin assert the 
version setup. We can see [5K green 
repeats|https://app.circleci.com/pipelines/github/bereng/cassandra/1051/workflows/0f339cc5-7dcd-4798-8202-6d4f2ae2bb0d/jobs/27078]
 whereas that was impossible before the fix

> Flaky test: 
> org.apache.cassandra.cql3.validation.operations.InsertUpdateIfConditionTest.testConditionalUpdate[1:
>  clusterMinVersion=3.11]-compression.jdk1.8 on trunk
> --------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-18393
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-18393
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Test/unit
>            Reporter: Josh McKenzie
>            Assignee: Berenguer Blasi
>            Priority: Normal
>             Fix For: 4.1.x, 5.0, 5.0.x
>
>
> Failed 1 times in the last 1 runs. Flakiness: 0%, Stability: 0%
> {code}
> Error Message
> 5.0.0-SNAPSHOT boolean:false
> Stacktrace
> junit.framework.AssertionFailedError: 5.0.0-SNAPSHOT boolean:false
>       at 
> org.apache.cassandra.cql3.validation.operations.InsertUpdateIfConditionTest.lambda$data$1(InsertUpdateIfConditionTest.java:70)
>       at 
> org.apache.cassandra.cql3.validation.operations.InsertUpdateIfConditionTest.beforeSetup(InsertUpdateIfConditionTest.java:95)
>       at 
> org.apache.cassandra.cql3.validation.operations.InsertUpdateIfConditionTest.before(InsertUpdateIfConditionTest.java:89)
> {code}



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

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

Reply via email to