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

David Capwell updated CASSANDRA-20487:
--------------------------------------
    Resolution: Invalid
        Status: Resolved  (was: Open)

the list -= does a read before write using the same CL as the write.  In this 
case the CL is local so it won't have the same monotonic visibility that the 
test works with as it doesn't do the read at the CL the rest of the test does

TL;DR - Test bug, shouldn't include -= for lists as this requires a read at a 
strong CL

> tombstone from list discard (-=) not observed from viewers
> ----------------------------------------------------------
>
>                 Key: CASSANDRA-20487
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-20487
>             Project: Apache Cassandra
>          Issue Type: Bug
>          Components: CQL/Semantics
>            Reporter: David Capwell
>            Priority: Normal
>             Fix For: 5.x
>
>
> This was found in https://github.com/apache/cassandra/pull/4006
> SHA=7fe995c3b8787bc895c62b9614d408161231259a
> Test=org.apache.cassandra.distributed.test.cql3.MultiNodeTableWalkWithoutReadRepairTest
> {code}
> accord.utils.Property$PropertyError: Property error detected:
> Seed = -6517659374622108140
> Examples = 1
> Pure = true
> Steps: 400
> Values:
>       State: 
>               Setup:
>               CREATE KEYSPACE IF NOT EXISTS ks1 WITH replication = {'class': 
> 'SimpleStrategy', 'replication_factor': 3};
>               CREATE TABLE ks1.tbl (
>                   pk0 ascii,
>                   ck0 boolean,
>                   s0 list<frozen<list<boolean>>> static,
>                   v0 frozen<list<frozen<map<ascii, varint>>>>,
>                   v1 frozen<tuple<tinyint, frozen<map<varint, uuid>>, 
> frozen<tuple<ascii, double>>>>,
>                   PRIMARY KEY (pk0, ck0)
>               ) WITH CLUSTERING ORDER BY (ck0 ASC)
>                   AND additional_write_policy = '99p'
>                   AND allow_auto_snapshot = true
>                   AND bloom_filter_fp_chance = 0.01
>                   AND caching = {'keys': 'NONE', 'rows_per_partition': 'ALL'}
>                   AND cdc = false
>                   AND comment = ''
>                   AND compaction = {'base_shard_count': '6', 'class': 
> 'org.apache.cassandra.db.compaction.UnifiedCompactionStrategy', 
> 'max_sstables_to_compact': '26', 'min_sstable_size': '9160542B', 
> 'only_purge_repaired_tombstones': 'true', 'overlap_inclusion_method': 'NONE', 
> 'target_sstable_size': '33118701B', 'unchecked_tombstone_compaction': 'false'}
>                   AND compression = {'enabled': 'false'}
>                   AND memtable = 'default'
>                   AND crc_check_chance = 1.0
>                   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 speculative_retry = '99p';: 
> org.apache.cassandra.distributed.test.cql3.MultiNodeTableWalkBase.MultiNodeState
>       History:
>               17: DELETE FROM ks1.tbl USING TIMESTAMP 6 WHERE  pk0 = 
> 'G@\Poo*X\u000D\u000C' -- on node3
>               22: DELETE FROM ks1.tbl USING TIMESTAMP 7 WHERE  pk0 = 
> 'G@\Poo*X\u000D\u000C' AND  ck0 = true -- on node3
>               30: DELETE FROM ks1.tbl USING TIMESTAMP 11 WHERE  pk0 = 
> 'G@\Poo*X\u000D\u000C' -- on node2
>               39: UPDATE ks1.tbl USING TIMESTAMP 13 SET v0=[{' 
> k\u0017\u0008\u0005#y': 599384}], v1=(39, {172317: 
> 00000000-0000-4400-a400-000000000000}, ('_+', -1.1980516747794813E130)) WHERE 
>  pk0 = 'G@\Poo*X\u000D\u000C' AND  ck0 = false -- on node1
>               40: INSERT INTO ks1.tbl (pk0, ck0, v0, s0, v1) VALUES 
> ('G@\Poo*X\u000D\u000C', false, null, [[true, false]], (-10, {-69: 
> 00000000-0000-4600-b900-000000000000}, ('\u00149+E', -3.70925155072014E170))) 
> USING TIMESTAMP 14 -- on node2
>               55: DELETE FROM ks1.tbl USING TIMESTAMP 18 WHERE  pk0 = 
> 'G@\Poo*X\u000D\u000C' -- on node3
>               95: INSERT INTO ks1.tbl (pk0, ck0, s0, v0, v1) VALUES 
> ('G@\Poo*X\u000D\u000C', false, [[true, true], [true], [true, false]], 
> [{'VF}': 2788132, 'f': -12948532}, {'-+ciS\u001A\u0011\u001C': 346}, 
> {'\u001A': 0, '\u001E@:V>I\u0004eM': 391287278, 'Z|6%{R({\u001E?': 509}], 
> (-90, {-92140986: 00000000-0000-4e00-9600-000000000000, -117652: 
> 00000000-0000-4100-bb00-000000000000, 0: 
> 00000000-0000-4000-b100-000000000000}, ('''gUu', 5.352521969766626E-196))) 
> USING TIMESTAMP 23 -- on node2
>               98: DELETE s0, s0 FROM ks1.tbl USING TIMESTAMP 24 WHERE  pk0 = 
> 'G@\Poo*X\u000D\u000C' -- on node1
>               179: INSERT INTO ks1.tbl (pk0, ck0, v0, v1) VALUES 
> ('G@\Poo*X\u000D\u000C', true, [{'R\u0011': 0}], (-123, {0: 
> 00000000-0000-4600-8f00-000000000000, 13643: 
> 00000000-0000-4700-8800-000000000000}, ('M\u0011$j>\u0018', 
> 9.187280044879176E-293))) USING TIMESTAMP 44 -- on node3
>               198: UPDATE ks1.tbl USING TIMESTAMP 50 SET s0=[[false]], 
> v0=[{'"*\u0010D\u0011y|G\u001Bp': 97612, '+\u0002ps': 0}, {'\u0000': -19321, 
> '\u0005\u0012<': 0, '/kW': 0}, {'CU5^\u0007w': 0, 'N^$\u0019$': 0, 
> '\u007F,]\u0013pEj\u00124D': 0}], v1=(-101, {0: 
> 00000000-0000-4300-bb00-000000000000, 1: 
> 00000000-0000-4600-ae00-000000000000}, ('$1\u0012;\u001A+z', 
> 1.5127319478448008E108)) WHERE  pk0 = 'G@\Poo*X\u000D\u000C' AND  ck0 = true 
> -- on node1
>               203: DELETE FROM ks1.tbl USING TIMESTAMP 51 WHERE  pk0 = 
> 'G@\Poo*X\u000D\u000C' AND  ck0 = true -- on node3
>               209: UPDATE ks1.tbl USING TIMESTAMP 54 SET s0 -= [[true, false, 
> true], [true], [false]], v0=[{' \u0011P(': 0, ' BD\u0012': 12, 
> '2\u000BL\u001E\u0013 ''Z': 0}], v1=null WHERE  pk0 = 'G@\Poo*X\u000D\u000C' 
> AND  ck0 = true -- on node2
>               214: SELECT * FROM ks1.tbl PER PARTITION LIMIT 889 -- full 
> table scan, on node3, fetch size 5000
> Caused by: java.lang.AssertionError: Unexpected rows found:
> pk0                    | ck0   | s0        | v0                               
>                                                                               
>                                | v1                                           
>                                                                               
>                                                         
> 'G@\Poo*X\u000D\u000C' | false | [[false]] | [{'VF}': 2788132, 'f': 
> -12948532}, {'-+ciS\u001A\u0011\u001C': 346}, {'\u001A': 0, 
> '\u001E@:V>I\u0004eM': 391287278, 'Z|6%{R({\u001E?': 509}] | (-90, 
> {-92140986: 00000000-0000-4e00-9600-000000000000, -117652: 
> 00000000-0000-4100-bb00-000000000000, 0: 
> 00000000-0000-4000-b100-000000000000}, ('''gUu', 5.352521969766626E-196))
> 'G@\Poo*X\u000D\u000C' | true  | [[false]] | [{' \u0011P(': 0, ' BD\u0012': 
> 12, '2\u000BL\u001E\u0013 ''Z': 0}]                                           
>                                  | null                                       
>                                                                               
>                                                           
> Missing rows:
> pk0                    | ck0   | s0   | v0                                    
>                                                                               
>                           | v1                                                
>                                                                               
>                                                    
> 'G@\Poo*X\u000D\u000C' | false | null | [{'VF}': 2788132, 'f': -12948532}, 
> {'-+ciS\u001A\u0011\u001C': 346}, {'\u001A': 0, '\u001E@:V>I\u0004eM': 
> 391287278, 'Z|6%{R({\u001E?': 509}] | (-90, {-92140986: 
> 00000000-0000-4e00-9600-000000000000, -117652: 
> 00000000-0000-4100-bb00-000000000000, 0: 
> 00000000-0000-4000-b100-000000000000}, ('''gUu', 5.352521969766626E-196))
> 'G@\Poo*X\u000D\u000C' | true  | null | [{' \u0011P(': 0, ' BD\u0012': 12, 
> '2\u000BL\u001E\u0013 ''Z': 0}]                                               
>                              | null                                           
>                                                                               
>                                                       
> Possible column conflicts:
> ', false, null, [{'VF}': 2788132, 'f': -12948532}, {'-+ciS': 346}, {'': 0, 
> '@:V>IeM': 391287278, 'Z|6%{R({?': 509}], (-90, {-92140986: 
> 00000000-0000-4e00-9600-000000000000, -117652: 
> 00000000-0000-4100-bb00-000000000000, 0: 
> 00000000-0000-4000-b100-000000000000}, ('''gUu', 5.352521969766626E-196))]
>       Diff (expected over actual):
> s0       
> null     
> [[false]]
> ', true, null, [{' P(': 0, ' BD': 12, '2L ''Z': 0}], null]
>       Diff (expected over actual):
> s0       
> null     
> [[false]]
> Expected:
> pk0                      | ck0   | s0                                         
>                             | v0                                              
>                                                                               
>                 | v1                                                          
>                                                                               
>                                           
> '7F\u00105\u001Dl'       | false | [[false, false], [false, false], [false, 
> false, false]]                | [{'\u0000\': -31621949}, {'\u00061': 
> -1163531, '4': 0, '|\u001B\u000CU': 76103}, {'@S': 2299}]                     
>                            | (-107, {-194598: 
> 00000000-0000-4a00-8700-000000000000, 0: 
> 00000000-0000-4900-a000-000000000000, 33460: 
> 00000000-0000-4500-a200-000000000000}, ('F&8<', 9.796742789142033E-236))     
> '~\u000A '               | false | [[false, true], [false, false, true]]      
>                             | null                                            
>                                                                               
>                 | (-116, {0: 00000000-0000-4800-8300-000000000000, 3600001: 
> 00000000-0000-4b00-9e00-000000000000}, ('Z%[', 1.1696299929752362E-275))      
>                                             
> 'qw@R=n'                 | true  | [[false], [true], [false]]                 
>                             | null                                            
>                                                                               
>                 | (-104, {-1457: 00000000-0000-4000-8e00-000000000000, -248: 
> 00000000-0000-4b00-ba00-000000000000}, ('{', -5.382269316559007E110))         
>                                            
> '-v\u000BD'              | false | [[false, true, false]]                     
>                             | [{'\u000Ex': 0, '\u0017\u000C{}7K8>It': 3}]     
>                                                                               
>                 | (-21, {-299629: 00000000-0000-4300-8700-000000000000}, 
> ('\u0000|\u0015T\u00156c\u001D', 6.835547878892394E184))                      
>                                                
> 'qw@R=n'                 | false | [[false], [true], [false]]                 
>                             | [{'\u0011\u0000S\u000E\u0005lXE\u001C[': 169}]  
>                                                                               
>                 | null                                                        
>                                                                               
>                                           
> 'G@\Poo*X\u000D\u000C'   | false | null                                       
>                             | [{'VF}': 2788132, 'f': -12948532}, 
> {'-+ciS\u001A\u0011\u001C': 346}, {'\u001A': 0, '\u001E@:V>I\u0004eM': 
> 391287278, 'Z|6%{R({\u001E?': 509}] | (-90, {-92140986: 
> 00000000-0000-4e00-9600-000000000000, -117652: 
> 00000000-0000-4100-bb00-000000000000, 0: 
> 00000000-0000-4000-b100-000000000000}, ('''gUu', 5.352521969766626E-196)) 
> '\u0011\u001F/-'         | false | null                                       
>                             | [{'H\u0005\u001B#': 0}, {'n\u0008\u00168': 0}]  
>                                                                               
>                 | null                                                        
>                                                                               
>                                           
> 'b\u001C:Y'              | true  | null                                       
>                             | null                                            
>                                                                               
>                 | (24, {-141621475: 00000000-0000-4400-b600-000000000000, 0: 
> 00000000-0000-4900-ba00-000000000000, 50: 
> 00000000-0000-4700-bf00-000000000000}, ('''l]k\u007F', 
> 2.9915069264120252E-40))
> 'T|~\u0012V\u0005\u001C' | true  | [[false, false, true], [false, false, 
> true], [true], [false], [false]] | [{'\u001BOI(': -29, ' \u001B[jys': 1006}]  
>                                                                               
>                      | (-7, {-21122: 00000000-0000-4000-be00-000000000000, 
> 72790: 00000000-0000-4700-a300-000000000000}, ('9G7o9O\u007FV\u0005', 
> -1.9390170589559507E156))                                 
> 'T|~\u0012V\u0005\u001C' | false | [[false, false, true], [false, false, 
> true], [true], [false], [false]] | [{'\u0013+K\u0010\u001B': 0, 
> 'mSa\u007F\u000Cs': -657465}]                                                 
>                                    | (96, {-229: 
> 00000000-0000-4500-b600-000000000000, 542: 
> 00000000-0000-4900-8400-000000000000}, ('GHpb)C0', 1.0460981817778407E-51))   
>                                                
> 'G@\Poo*X\u000D\u000C'   | true  | null                                       
>                             | [{' \u0011P(': 0, ' BD\u0012': 12, 
> '2\u000BL\u001E\u0013 ''Z': 0}]                                               
>                              | null                                           
>                                                                               
>                                                        
> '-v\u000BD'              | true  | [[false, true, false]]                     
>                             | [{'6e\u0004': -115482896, 'fT\u0017r\u0019CdW': 
> 488359, 'f\': 11659}, {'o02': -679505}, {'\u001D\u001Fm~@CAL!': 6}]           
>                 | null                                                        
>                                                                               
>                                           
> {code}
> In debugger I see that the -= does generate a tombstone and that this makes 
> it to the Memtable.
> To see if this was localized to table scan I altered the test to do a single 
> row read after the write, and this found the same issue
> {code}
> 263: SELECT * FROM ks1.tbl WHERE pk0 = 'G@\Poo*X\u000D\u000C' AND ck0 = true 
> ALLOW FILTERING -- Select for Mutation Validation, on node1
> {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