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

Youki Shiraishi reassigned CASSANDRA-19759:
-------------------------------------------

    Assignee: Youki Shiraishi

> CEP-15 (Accord): When starting a transaction in a table where Accord is not 
> enabled, should fail fast rather than fail with lack of ranges
> ------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-19759
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-19759
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Accord
>            Reporter: David Capwell
>            Assignee: Youki Shiraishi
>            Priority: Normal
>             Fix For: NA
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> Reported in Slack: 
> https://the-asf.slack.com/archives/C0459N9R5C6/p1712831271287869
> The “accord_demo.txt” has the following
> {code}
> ccm create accord-cql-poc -n 3
> ccm start
> bin/cqlsh -e "create keyspace ks with replication={'class':'SimpleStrategy', 
> 'replication_factor':3};"
> bin/cqlsh -e "create table ks.tbl1 (k int primary key, v int);"
> bin/cqlsh -e "create table ks.tbl2 (k int primary key, v int);"
> bin/nodetool -h 0000:0000:0000:0000:0000:ffff:7f00:0001 -p 7100 
> createepochunsafe
> bin/nodetool -h 0000:0000:0000:0000:0000:ffff:7f00:0001 -p 7200 
> createepochunsafe
> bin/nodetool -h 0000:0000:0000:0000:0000:ffff:7f00:0001 -p 7300 
> createepochunsafe
> BEGIN TRANSACTION
>   LET row1 = (SELECT * FROM ks.tbl1 WHERE k = 1);
>   SELECT row1.v;
>   IF row1 IS NULL THEN
>     INSERT INTO ks.tbl1 (k, v) VALUES (1, 2);
>   END IF
> COMMIT TRANSACTION;
> {code}
> If you run that it fails in an unclear way
> {code}
> cqlsh> BEGIN TRANSACTION
>    ...   LET row1 = (SELECT * FROM ks.tbl1 WHERE k = 1);
>    ...   SELECT row1.v;
>    ...   IF row1 IS NULL THEN
>    ...     INSERT INTO ks.tbl1 (k, v) VALUES (1, 2);
>    ...   END IF
>    ... COMMIT TRANSACTION;
> NoHostAvailable: ('Unable to complete the operation against any hosts', 
> {<Host: 127.0.0.1:9042 datacenter1>: <Error from server: code=0000 [Server 
> error] message="java.lang.IllegalStateException: Unable to select a HomeKey 
> as the topology does not have any ranges for epoch 17">})
> {code}
> The issue is that the table was not marked as an Accord table; aka missing 
> {code}
> WITH transactional_mode='full'
> {code}
> The demo should be updated to show this, but the error message should also be 
> improved.  We validate that the table exists but now that the metadata is 
> required we should also enforce this in CQL validation



--
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