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

Jacek Lewandowski commented on CASSANDRA-16415:
-----------------------------------------------

So, the problem was not visible, but it unfortunately affects 4.0 as well (in 
terms of upgrading from 3). It is not critical though.

The problem is still the same - {{ColumnFilter}} is buggy. Its structure and 
interpretation has changed in 3.0.14 (I guess), 3.4 and 4.0 significantly. 
Although we try to apply some adjustments while sending it to older nodes / 
receiving it from older nodes, there are some features which are not available 
for older nodes.

For example, fetch all regular columns and only queried static columns, while 
there is only a subset of queried regular columns - there is no way to convert 
the filter for 3.11 or 3.0 so that it gets interpreted in the same way as on 
4.0, and thus, the data read on 4.0 will be different to the data read on 3.11 
or 3.0, and therefore, the digest will be different as well. The differences 
are mostly with regard to which cells has skipped values and which cells are 
removed at all from the results

I'm going to add extra flag to {{ColumnFilter}} in 4.0, which will be set if 
there are 3.4+ nodes in the cluster, so that the filter can be interpreted on 
4.0 in the most efficient way that is also available on 3.4+ nodes. Where there 
are < 3.4 nodes in the cluster, it is enough to set {{queried}} columns to null 
(as we try to do now).

 

> Broken test mixedModeReadColumnSubsetDigestCheck - 
> org.apache.cassandra.distributed.upgrade.MixedModeReadTest
> -------------------------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-16415
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-16415
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Consistency/Coordination, Test/dtest/java
>            Reporter: Yifan Cai
>            Assignee: Jacek Lewandowski
>            Priority: Normal
>             Fix For: 3.11.x, 4.0-beta
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> The test has been failing and can always be reproduced in the recent CI. 
> Stack trace: 
> {code:java}
> junit.framework.AssertionFailedError: Found Digest Mismatch
>  at 
> org.apache.cassandra.distributed.upgrade.MixedModeReadTest.checkTraceForDigestMismatch(MixedModeReadTest.java:89)
>  at 
> org.apache.cassandra.distributed.upgrade.MixedModeReadTest.lambda$mixedModeReadColumnSubsetDigestCheck$0(MixedModeReadTest.java:63)
>  at 
> org.apache.cassandra.distributed.upgrade.UpgradeTestBase$TestCase.run(UpgradeTestBase.java:171)
>  at 
> org.apache.cassandra.distributed.upgrade.MixedModeReadTest.mixedModeReadColumnSubsetDigestCheck(MixedModeReadTest.java:76)
>  {code}
> The initial investigation shows that 
>  * The test only fails in the setup phase of 
> mixedModeReadColumnSubsetDigestCheck. The cluster version is 
> *Versions.Major.v3X*
>  * The test failure is likely a consequence of CASSANDRA-15962. After 
> dropping the commit in branch cassandra-3.11 and rebuild the dtest jar, the 
> upgrade test can pass. Meanwhile, dropping the other commits does not help. 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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

Reply via email to