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

David Capwell commented on CASSANDRA-20828:
-------------------------------------------

FullAccordInteropMultiNodeTableWalkTest had seed 1919433858547286168 with a 
very small history

{code}
junit.framework.AssertionFailedError: Property error detected:
Seed = 1919433858547286168
Examples = 10
Pure = true
Error: Unexpected results for query: SELECT * FROM ks4.tbl WHERE pk0 = 
00000000-0000-4100-a600-000000000000 PER PARTITION LIMIT 969
Steps: 400
Values:
        State: 
                Setup:
                Config:
                sstable:
                        selected_format: big
                CREATE KEYSPACE IF NOT EXISTS ks4 WITH replication = {'class': 
'SimpleStrategy', 'replication_factor': 3};
                CREATE TYPE IF NOT EXISTS ks4."vl2uT9OG8xp_8" (
                    f0 boolean,
                    f1 ascii
                );;
                CREATE TABLE ks4.tbl (
                    pk0 uuid,
                    ck0 bigint,
                    ck1 uuid,
                    s0 list<frozen<"vl2uT9OG8xp_8">> static,
                    v0 frozen<map<frozen<map<double, int>>, 
frozen<set<ascii>>>>,
                    PRIMARY KEY (pk0, ck0, ck1)
                ) WITH CLUSTERING ORDER BY (ck0 ASC, ck1 DESC)
                    AND additional_write_policy = '99p'
                    AND allow_auto_snapshot = true
                    AND bloom_filter_fp_chance = 0.01
                    AND caching = {'keys': 'ALL', 'rows_per_partition': 
'247538569'}
                    AND cdc = false
                    AND comment = ''
                    AND compaction = {'class': 
'org.apache.cassandra.db.compaction.UnifiedCompactionStrategy', 
'only_purge_repaired_tombstones': 'true', 'unchecked_tombstone_compaction': 
'false'}
                    AND compression = {'enabled': 'false'}
                    AND memtable = 'default'
                    AND crc_check_chance = 1.0
                    AND fast_path = 'keyspace'
                    AND default_time_to_live = 0
                    AND extensions = {}
                    AND gc_grace_seconds = 864000
                    AND incremental_backups = true
                    AND max_index_interval = 2048
                    AND memtable_flush_period_in_ms = 0
                    AND min_index_interval = 128
                    AND read_repair = 'NONE'
                    AND transactional_mode = 'full'
                    AND transactional_migration_from = 'none'
                    AND speculative_retry = '99p';
                CREATE CUSTOM INDEX tbl_ck0 ON ks4.tbl(ck0) USING 
'StorageAttachedIndex';
                CREATE INDEX tbl_ck1 ON ks4.tbl(ck1) USING 'SAI';
                CREATE CUSTOM INDEX tbl_v0 ON ks4.tbl(FULL(v0)) USING 
'StorageAttachedIndex';: 
org.apache.cassandra.distributed.test.cql3.AccordInteropMultiNodeTableWalkBase.AccordInteropMultiNodeState
        History:
                1: BEGIN TRANSACTION INSERT INTO ks4.tbl (pk0, s0) VALUES 
(00000000-0000-4100-a600-000000000000, [{f0: false, f1: '.\u000Ez'}]); COMMIT 
TRANSACTION -- on node3
                2: SELECT * FROM ks4.tbl PER PARTITION LIMIT 374 LIMIT 223 -- 
full table scan, on node2, fetch size 10
                3: SELECT * FROM ks4.tbl WHERE pk0 = 
00000000-0000-4100-a600-000000000000 PER PARTITION LIMIT 122 LIMIT 228 -- By 
Partition Key, on node2, fetch size 5000
                4: SELECT * FROM ks4.tbl PER PARTITION LIMIT 855 LIMIT 949 -- 
full table scan, on node2, fetch size 1
                5: SELECT * FROM ks4.tbl WHERE token(pk0) BETWEEN 
6287027248855902233 AND -9223372036854775808 PER PARTITION LIMIT 464 LIMIT 563 
-- min token range, on node2, fetch size 10
                6: BEGIN TRANSACTION INSERT INTO ks4.tbl (pk0, s0) VALUES 
(00000000-0000-4100-a600-000000000000, [{f0: true, f1: 'm5^I\u0006Wb%s'}, {f0: 
true, f1: 'F'}]); COMMIT TRANSACTION -- on node3
                7: SELECT * FROM ks4.tbl WHERE pk0 = 
00000000-0000-4100-a600-000000000000 PER PARTITION LIMIT 108 LIMIT 488 -- By 
Partition Key, on node3, fetch size 1
                8: SELECT * FROM ks4.tbl WHERE token(pk0) >= 
token(00000000-0000-4100-a600-000000000000) AND token(pk0) <= 
token(00000000-0000-4100-a600-000000000000) PER PARTITION LIMIT 197 -- by token 
range, on node3, fetch size 1000
                9: SELECT * FROM ks4.tbl WHERE pk0 = 
00000000-0000-4100-a600-000000000000 PER PARTITION LIMIT 392 -- By Partition 
Key, on node2, fetch size 1
                10: SELECT * FROM ks4.tbl WHERE pk0 = 
00000000-0000-4100-a600-000000000000 PER PARTITION LIMIT 669 LIMIT 829 -- By 
Partition Key, on node2, fetch size 1
                11: BEGIN TRANSACTION DELETE FROM ks4.tbl WHERE  pk0 = 
00000000-0000-4100-a600-000000000000 AND  ck0 = -9152779431934595738 * 
9060953949643972180 AND  ck1 = 00000000-0000-4500-b700-000000000000; COMMIT 
TRANSACTION -- on node2
                12: SELECT * FROM ks4.tbl WHERE token(pk0) >= 
token(00000000-0000-4100-a600-000000000000) AND token(pk0) <= 
token(00000000-0000-4100-a600-000000000000) PER PARTITION LIMIT 481 -- by token 
range, on node1, fetch size 1000
                13: SELECT * FROM ks4.tbl WHERE token(pk0) >= 
token(00000000-0000-4100-a600-000000000000) AND token(pk0) < 
token(00000000-0000-4100-a600-000000000000) PER PARTITION LIMIT 817 LIMIT 694 
-- by token range, on node1, fetch size 10
                14: SELECT * FROM ks4.tbl WHERE pk0 = 
00000000-0000-4100-a600-000000000000 PER PARTITION LIMIT 456 -- By Partition 
Key, on node1
                15: SELECT * FROM ks4.tbl WHERE pk0 = 
00000000-0000-4100-a600-000000000000 PER PARTITION LIMIT 317 -- By Partition 
Key, on node3, fetch size 10
                16: UPDATE ks4.tbl SET s0 += [{f0: false, f1: 
'6\u000C\u001E'}], v0=null WHERE  pk0 = 00000000-0000-4100-a600-000000000000 
AND  ck0 = -2173063491389939544 * -3650886811909497768 AND  ck1 = 
00000000-0000-4700-a100-000000000000 -- on node2
                17: SELECT * FROM ks4.tbl WHERE pk0 = 
00000000-0000-4100-a600-000000000000 PER PARTITION LIMIT 969 -- By Partition 
Key, on node1, fetch size 5000

        at accord.utils.Property$StatefulBuilder.check(Property.java:545)
        at 
org.apache.cassandra.distributed.test.cql3.SingleNodeTableWalkTest.test(SingleNodeTableWalkTest.java:367)
        at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
Caused by: java.lang.AssertionError: Unexpected results for query: SELECT * 
FROM ks4.tbl WHERE pk0 = 00000000-0000-4100-a600-000000000000 PER PARTITION 
LIMIT 969
Caused by: java.lang.AssertionError: 
Possible column conflicts:
        Expected: [00000000-0000-4100-a600-000000000000, null, null, [{f0: 
true, f1: 'm5^IWb%s'}, {f0: true, f1: 'F'}, {f0: false, f1: '6'}], null]
        Diff (expected over actual):
s0 list<frozen<"vl2uT9OG8xp_8">>                                                
         
[{f0: true, f1: 'm5^I\u0006Wb%s'}, {f0: true, f1: 'F'}, {f0: false, f1: 
'6\u000C\u001E'}]
[{f0: false, f1: '6\u000C\u001E'}, {f0: true, f1: 'm5^I\u0006Wb%s'}, {f0: true, 
f1: 'F'}]
{code}

the list ordering isn't correct, which this patch is meant to fix.

This seed was found in CASSANDRA-21055 which is about to merge, so the SHA that 
adds that this seed should repo

> When a table is writing to accord and the mutation is a regular CQL mutation, 
> if a multi cell list was written the cell path's timestamp did not reflect 
> the transaction timestamp
> ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-20828
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-20828
>             Project: Apache Cassandra
>          Issue Type: Bug
>          Components: Accord
>            Reporter: David Capwell
>            Priority: Normal
>             Fix For: 6.x
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> When a list type is written in CAS or BEGIN TRANSACTION we have a custom 
> Updater that defines what the cell path should be for the list type, but when 
> you used regular CQL we fall back to wall clock time.  We normally allow this 
> in accord as we rewrite the timestamps during the write phase but the list 
> cell path was not updated



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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to