cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Philip Thompson (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-7801) A successful INSERT with CAS does not always store data in the DB after a DELETE
Date Mon, 25 Aug 2014 17:02:05 GMT

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

Philip Thompson commented on CASSANDRA-7801:
--------------------------------------------

I'm able to reproduce his issue with the attached test on Windows 7 with C* 2.1.0-rc6. However,
with the following similar test using the python driver, I was not able to reproduce the issue:
{code}
    def bug_7801_test(self):
        session = self.prepare()
        session.execute("CREATE TABLE IF NOT EXISTS users (userid text PRIMARY KEY, name text)")

        del_cmd = session.prepare("DELETE FROM users where userid='user1'")
        ins = session.prepare("INSERT INTO users (userid, name) values ('user1', 'calle')
IF NOT EXISTS")
        get = session.prepare("SELECT * FROM users where userid='user1'")

        for i in xrange(10000):
            session.execute(del_cmd)
            session.execute(ins)
            rows = session.execute(get)

            self.assertItemsEqual(rows[0], ['user1', 'calle'])
            self.assertEqual(len(rows), 1)
{code}

> A successful INSERT with CAS does not always store data in the DB after a DELETE
> --------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-7801
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-7801
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>         Environment: PC with Windows 7 and on Linux installation.
> Have seen the fault on Cassandra 2.0.9 and Cassandra 2.1.0-rc5 
>            Reporter: Martin Fransson
>         Attachments: cas.zip
>
>
> When I run a loop with CQL statements to DELETE, INSERT with CAS and then a GET.
> The INSERT opertion is successful (Applied), but no data is stored in the database. I
have checked the database manually after the test to verify that the DB is empty.
>         for (int i = 0; i < 10000; ++i)
>         {
>             try
>             {
>                 t.del();
>                 t.cas();
>                 t.select();
>             }
>             catch (Exception e)
>             {
>                 System.err.println("i=" + i);
>                 e.printStackTrace();
>                 break;
>             }
>         }
>         myCluster = Cluster.builder().addContactPoint("localhost").withPort(12742).build();
>         mySession = myCluster.connect();
>         mySession.execute("CREATE KEYSPACE IF NOT EXISTS castest WITH REPLICATION = {
'class' : 'SimpleStrategy', 'replication_factor' : 1 };");
>         mySession.execute("CREATE TABLE IF NOT EXISTS castest.users (userid text PRIMARY
KEY, name text)");
>         myInsert = mySession.prepare("INSERT INTO castest.users (userid, name) values
('user1', 'calle') IF NOT EXISTS");
>         myDelete = mySession.prepare("DELETE FROM castest.users where userid='user1'");
>         myGet = mySession.prepare("SELECT * FROM castest.users where userid='user1'");
>     }
> I can reproduce the fault with the attached program on a PC with windows 7.
> You need a cassandra runing and you need to set the port in the program.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message