cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jeremy Schlatter (JIRA)" <>
Subject [jira] [Created] (CASSANDRA-10021) Losing writes in a single-node cluster
Date Fri, 07 Aug 2015 22:07:45 GMT
Jeremy Schlatter created CASSANDRA-10021:

             Summary: Losing writes in a single-node cluster
                 Key: CASSANDRA-10021
             Project: Cassandra
          Issue Type: Bug
         Environment: I have been testing this against Docker's official Cassandra image.
            Reporter: Jeremy Schlatter

I am able to reliably reproduce write losses in the following circumstances:

* Set up a single-node cluster.
* Create keyspace with SimpleStrategy, replication_factor = 1.
* Create a table with a float field.
* Send an UPDATE command to set the float value on a row.
* After the command returns, immediately send another UPDATE to set the float value to something
_smaller_ than the first value.
* The second UPDATE is sometimes lost.

Reproduction code attached. There are two implementations: one in Go and one in C++. They
do the same thing -- I implemented both to rule out a bug in the client library. For both
cases, you can reproduce by doing the following:

1. docker run --name repro-cassandra --rm cassandra:2.0.14
(or any other Cassandra version)
2. Download and unzip one of the zip files, and change to its directory.
3. docker build -t repro .
4. docker run --link repro-cassandra:cassandra --rm repro

The reproduction code will repeatedly run two UPDATEs followed by a SELECT until it detects
a lost write, and then print:

"Lost a write. Got 20.500000, want 10.500000"

This may be fixed in 2.1.8 because I have not been able to reproduce it in that version.

This message was sent by Atlassian JIRA

View raw message