Two connections run DELETE from different Cassandra tables which point at the same column family. One DELETE ends with error 1032 "Can't find record".
DROP TABLE iF EXISTS t1, t2;
|
CREATE TABLE t1 (
|
pk int primary key,
|
c1 varchar(256),
|
c2 varchar(32)
|
) ENGINE=Cassandra keyspace='bug' column_family='cf1' thrift_host='127.0.0.1';
|
CREATE TABLE t2 LIKE t1;
|
INSERT INTO t1 VALUES (1,'a','b'), (2,NULL,'c'), (3,'s','d');
|
DELETE FROM t1 WHERE pk BETWEEN 1 AND 6;
|
DELETE FROM t2 WHERE c2 IN ('f', 0 ) ORDER BY pk;
|
main.t14 [ fail ]
|
Test ended at 2013-01-06 02:17:29
|
|
CURRENT_TEST: main.t14
|
mysqltest: At line 42: query 'DELETE FROM t2 WHERE c2 IN ('f', 0 ) ORDER BY pk' failed: 1032: Can't find record in 't2'
|
ORDER BY in the DELETE seems to be important.
Run the test below with repeat, e.g.
perl mysql-test-run.pl --repeat=30 <test name>
|
--source include/have_cassandra.inc
|
|
--disable_warnings
|
DROP TABLE iF EXISTS t1, t2;
|
--enable_warnings
|
|
--remove_files_wildcard $MYSQLTEST_VARDIR cassandra_test_cleanup.cql
|
--write_file $MYSQLTEST_VARDIR/cassandra_test_cleanup.cql
|
drop keyspace bug;
|
EOF
|
--error 0,1,2
|
--system cqlsh -3 -f $MYSQLTEST_VARDIR/cassandra_test_cleanup.cql
|
|
--remove_files_wildcard $MYSQLTEST_VARDIR cassandra_test_init.cql
|
--write_file $MYSQLTEST_VARDIR/cassandra_test_init.cql
|
|
CREATE KEYSPACE bug
|
WITH strategy_class = 'org.apache.cassandra.locator.SimpleStrategy'
|
AND strategy_options:replication_factor='1';
|
|
USE bug;
|
create columnfamily cf1 ( pk int primary key, c1 ascii, c2 ascii );
|
EOF
|
|
--system cqlsh -3 -f $MYSQLTEST_VARDIR/cassandra_test_init.cql
|
|
CREATE TABLE t1 (
|
pk int primary key,
|
c1 varchar(256),
|
c2 varchar(32)
|
) ENGINE=Cassandra keyspace='bug' column_family='cf1' thrift_host='127.0.0.1';
|
|
CREATE TABLE t2 LIKE t1;
|
|
INSERT INTO t1 VALUES (1,'a','b'), (2,NULL,'c'), (3,'s','d');
|
|
--connect (con1,localhost,root,,test)
|
--send
|
DELETE FROM t1 WHERE pk BETWEEN 1 AND 6;
|
|
--connection default
|
DELETE FROM t2 WHERE c2 IN ('f', 0 ) ORDER BY pk;
|
|
--connection con1
|
--reap
|
|
DROP TABLE t1, t2;
|
--disconnect con1
|
|
- relates to
-
MDEV-431
Cassandra storage engine
-
-
Closed
{"report":{"fcp":883,"ttfb":223,"pageVisibility":"visible","entityId":22475,"key":"jira.project.issue.view-issue","isInitial":true,"threshold":1000,"elementTimings":{},"userDeviceMemory":8,"userDeviceProcessors":64,"apdex":1,"journeyId":"84465379-b59c-4af9-9d0f-8ddba06fc267","navigationType":0,"readyForUser":991.4000000953674,"redirectCount":0,"resourceLoadedEnd":1249.3000001907349,"resourceLoadedStart":229.40000009536743,"resourceTiming":[{"duration":33.69999980926514,"initiatorType":"link","name":"https://jira.mariadb.org/s/2c21342762a6a02add1c328bed317ffd-CDN/lu2cib/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/css/_super/batch.css","startTime":229.40000009536743,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":229.40000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":263.09999990463257,"responseStart":0,"secureConnectionStart":0},{"duration":39.19999980926514,"initiatorType":"link","name":"https://jira.mariadb.org/s/7ebd35e77e471bc30ff0eba799ebc151-CDN/lu2cib/820016/12ta74/2bf333562ca6724060a9d5f1535471f6/_/download/contextbatch/css/jira.browse.project,project.issue.navigator,jira.view.issue,jira.general,jira.global,atl.general,-_super/batch.css?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&slack-enabled=true","startTime":229.7000002861023,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":229.7000002861023,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":268.90000009536743,"responseStart":0,"secureConnectionStart":0},{"duration":99.90000009536743,"initiatorType":"script","name":"https://jira.mariadb.org/s/0917945aaa57108d00c5076fea35e069-CDN/lu2cib/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/js/_super/batch.js?locale=en","startTime":229.90000009536743,"connectEnd":229.90000009536743,"connectStart":229.90000009536743,"domainLookupEnd":229.90000009536743,"domainLookupStart":229.90000009536743,"fetchStart":229.90000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":229.90000009536743,"responseEnd":329.80000019073486,"responseStart":329.80000019073486,"secureConnectionStart":229.90000009536743},{"duration":161.90000009536743,"initiatorType":"script","name":"https://jira.mariadb.org/s/2d8175ec2fa4c816e8023260bd8c1786-CDN/lu2cib/820016/12ta74/2bf333562ca6724060a9d5f1535471f6/_/download/contextbatch/js/jira.browse.project,project.issue.navigator,jira.view.issue,jira.general,jira.global,atl.general,-_super/batch.js?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&locale=en&slack-enabled=true","startTime":230.09999990463257,"connectEnd":230.09999990463257,"connectStart":230.09999990463257,"domainLookupEnd":230.09999990463257,"domainLookupStart":230.09999990463257,"fetchStart":230.09999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":230.09999990463257,"responseEnd":392,"responseStart":392,"secureConnectionStart":230.09999990463257},{"duration":165.89999961853027,"initiatorType":"script","name":"https://jira.mariadb.org/s/a9324d6758d385eb45c462685ad88f1d-CDN/lu2cib/820016/12ta74/c92c0caa9a024ae85b0ebdbed7fb4bd7/_/download/contextbatch/js/atl.global,-_super/batch.js?locale=en","startTime":230.2000002861023,"connectEnd":230.2000002861023,"connectStart":230.2000002861023,"domainLookupEnd":230.2000002861023,"domainLookupStart":230.2000002861023,"fetchStart":230.2000002861023,"redirectEnd":0,"redirectStart":0,"requestStart":230.2000002861023,"responseEnd":396.09999990463257,"responseStart":396.09999990463257,"secureConnectionStart":230.2000002861023},{"duration":215.90000009536743,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/820016/12ta74/1.0/_/download/batch/jira.webresources:calendar-en/jira.webresources:calendar-en.js","startTime":230.5,"connectEnd":230.5,"connectStart":230.5,"domainLookupEnd":230.5,"domainLookupStart":230.5,"fetchStart":230.5,"redirectEnd":0,"redirectStart":0,"requestStart":230.5,"responseEnd":446.40000009536743,"responseStart":446.40000009536743,"secureConnectionStart":230.5},{"duration":225.39999961853027,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/820016/12ta74/1.0/_/download/batch/jira.webresources:calendar-localisation-moment/jira.webresources:calendar-localisation-moment.js","startTime":230.7000002861023,"connectEnd":230.7000002861023,"connectStart":230.7000002861023,"domainLookupEnd":230.7000002861023,"domainLookupStart":230.7000002861023,"fetchStart":230.7000002861023,"redirectEnd":0,"redirectStart":0,"requestStart":230.7000002861023,"responseEnd":456.09999990463257,"responseStart":456.09999990463257,"secureConnectionStart":230.7000002861023},{"duration":257.5,"initiatorType":"link","name":"https://jira.mariadb.org/s/b04b06a02d1959df322d9cded3aeecc1-CDN/lu2cib/820016/12ta74/a2ff6aa845ffc9a1d22fe23d9ee791fc/_/download/contextbatch/css/jira.global.look-and-feel,-_super/batch.css","startTime":230.80000019073486,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":230.80000019073486,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":488.30000019073486,"responseStart":0,"secureConnectionStart":0},{"duration":227.30000019073486,"initiatorType":"script","name":"https://jira.mariadb.org/rest/api/1.0/shortcuts/820016/47140b6e0a9bc2e4913da06536125810/shortcuts.js?context=issuenavigation&context=issueaction","startTime":231,"connectEnd":231,"connectStart":231,"domainLookupEnd":231,"domainLookupStart":231,"fetchStart":231,"redirectEnd":0,"redirectStart":0,"requestStart":231,"responseEnd":458.30000019073486,"responseStart":458.30000019073486,"secureConnectionStart":231},{"duration":257.2999997138977,"initiatorType":"link","name":"https://jira.mariadb.org/s/3ac36323ba5e4eb0af2aa7ac7211b4bb-CDN/lu2cib/820016/12ta74/d176f0986478cc64f24226b3d20c140d/_/download/contextbatch/css/com.atlassian.jira.projects.sidebar.init,-_super,-project.issue.navigator,-jira.view.issue/batch.css?jira.create.linked.issue=true","startTime":231.2000002861023,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":231.2000002861023,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":488.5,"responseStart":0,"secureConnectionStart":0},{"duration":231.59999990463257,"initiatorType":"script","name":"https://jira.mariadb.org/s/5d5e8fe91fbc506585e83ea3b62ccc4b-CDN/lu2cib/820016/12ta74/d176f0986478cc64f24226b3d20c140d/_/download/contextbatch/js/com.atlassian.jira.projects.sidebar.init,-_super,-project.issue.navigator,-jira.view.issue/batch.js?jira.create.linked.issue=true&locale=en","startTime":231.30000019073486,"connectEnd":231.30000019073486,"connectStart":231.30000019073486,"domainLookupEnd":231.30000019073486,"domainLookupStart":231.30000019073486,"fetchStart":231.30000019073486,"redirectEnd":0,"redirectStart":0,"requestStart":231.30000019073486,"responseEnd":462.90000009536743,"responseStart":462.90000009536743,"secureConnectionStart":231.30000019073486},{"duration":450.59999990463257,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/820016/12ta74/1.0/_/download/batch/jira.webresources:bigpipe-js/jira.webresources:bigpipe-js.js","startTime":232.2000002861023,"connectEnd":232.2000002861023,"connectStart":232.2000002861023,"domainLookupEnd":232.2000002861023,"domainLookupStart":232.2000002861023,"fetchStart":232.2000002861023,"redirectEnd":0,"redirectStart":0,"requestStart":232.2000002861023,"responseEnd":682.8000001907349,"responseStart":682.8000001907349,"secureConnectionStart":232.2000002861023},{"duration":1017.0999999046326,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/820016/12ta74/1.0/_/download/batch/jira.webresources:bigpipe-init/jira.webresources:bigpipe-init.js","startTime":232.2000002861023,"connectEnd":232.2000002861023,"connectStart":232.2000002861023,"domainLookupEnd":232.2000002861023,"domainLookupStart":232.2000002861023,"fetchStart":232.2000002861023,"redirectEnd":0,"redirectStart":0,"requestStart":232.2000002861023,"responseEnd":1249.3000001907349,"responseStart":1249.3000001907349,"secureConnectionStart":232.2000002861023},{"duration":181.09999990463257,"initiatorType":"xmlhttprequest","name":"https://jira.mariadb.org/rest/webResources/1.0/resources","startTime":502.30000019073486,"connectEnd":502.30000019073486,"connectStart":502.30000019073486,"domainLookupEnd":502.30000019073486,"domainLookupStart":502.30000019073486,"fetchStart":502.30000019073486,"redirectEnd":0,"redirectStart":0,"requestStart":502.30000019073486,"responseEnd":683.4000000953674,"responseStart":683.3000001907349,"secureConnectionStart":502.30000019073486},{"duration":515,"initiatorType":"link","name":"https://jira.mariadb.org/s/d5715adaadd168a9002b108b2b039b50-CDN/lu2cib/820016/12ta74/be4b45e9cec53099498fa61c8b7acba4/_/download/contextbatch/css/jira.project.sidebar,-_super,-project.issue.navigator,-jira.general,-jira.browse.project,-jira.view.issue,-jira.global,-atl.general,-com.atlassian.jira.projects.sidebar.init/batch.css?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&slack-enabled=true","startTime":815.4000000953674,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":815.4000000953674,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":1330.4000000953674,"responseStart":0,"secureConnectionStart":0},{"duration":479,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/820016/12ta74/e65b778d185daf5aee24936755b43da6/_/download/contextbatch/js/browser-metrics-plugin.contrib,-_super,-project.issue.navigator,-jira.view.issue,-atl.general/batch.js?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&slack-enabled=true","startTime":816.4000000953674,"connectEnd":816.4000000953674,"connectStart":816.4000000953674,"domainLookupEnd":816.4000000953674,"domainLookupStart":816.4000000953674,"fetchStart":816.4000000953674,"redirectEnd":0,"redirectStart":0,"requestStart":816.4000000953674,"responseEnd":1295.4000000953674,"responseStart":1295.4000000953674,"secureConnectionStart":816.4000000953674},{"duration":502,"initiatorType":"script","name":"https://jira.mariadb.org/s/097ae97cb8fbec7d6ea4bbb1f26955b9-CDN/lu2cib/820016/12ta74/be4b45e9cec53099498fa61c8b7acba4/_/download/contextbatch/js/jira.project.sidebar,-_super,-project.issue.navigator,-jira.general,-jira.browse.project,-jira.view.issue,-jira.global,-atl.general,-com.atlassian.jira.projects.sidebar.init/batch.js?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&locale=en&slack-enabled=true","startTime":817.2000002861023,"connectEnd":817.2000002861023,"connectStart":817.2000002861023,"domainLookupEnd":817.2000002861023,"domainLookupStart":817.2000002861023,"fetchStart":817.2000002861023,"redirectEnd":0,"redirectStart":0,"requestStart":817.2000002861023,"responseEnd":1319.2000002861023,"responseStart":1319.2000002861023,"secureConnectionStart":817.2000002861023}],"fetchStart":0,"domainLookupStart":0,"domainLookupEnd":0,"connectStart":0,"connectEnd":0,"requestStart":18,"responseStart":223,"responseEnd":226,"domLoading":227,"domInteractive":1272,"domContentLoadedEventStart":1272,"domContentLoadedEventEnd":1330,"domComplete":1736,"loadEventStart":1736,"loadEventEnd":1737,"userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","marks":[{"name":"bigPipe.sidebar-id.start","time":1252.0999999046326},{"name":"bigPipe.sidebar-id.end","time":1252.9000000953674},{"name":"bigPipe.activity-panel-pipe-id.start","time":1253.0999999046326},{"name":"bigPipe.activity-panel-pipe-id.end","time":1254},{"name":"activityTabFullyLoaded","time":1345.7000002861023}],"measures":[],"correlationId":"1b34e8852d20bc","effectiveType":"4g","downlink":10,"rtt":0,"serverDuration":92,"dbReadsTimeInMs":11,"dbConnsTimeInMs":19,"applicationHash":"9d11dbea5f4be3d4cc21f03a88dd11d8c8687422","experiments":[]}}
DELETE works by first finding records to delete, and then deleting them. If ORDER BY is present, it may also sort records before doing deletes.
It seems, the following happens:
connection1 finds a record
connection2 finds the same record
connection2 deletes it
connection1 tries to delete the record, but it is already deleted. It gets an error.
Maybe, Cassandra SE should ignore the error in this case.