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

Sylvestor George commented on CASSANDRA-10021:
----------------------------------------------

I was able to reproduce the issue in the attached Go file. The update also 
fails if the new float value is larger than the previous float value. Although 
its not the case for every update but its significantly frequent. I tested with 
C* version 2.1.6 and 2.1.7.
The issue does not exist for C* version 2.1.8

> Losing writes in a single-node cluster
> --------------------------------------
>
>                 Key: CASSANDRA-10021
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-10021
>             Project: Cassandra
>          Issue Type: Bug
>         Environment: Docker images
>            Reporter: Jeremy Schlatter
>            Assignee: Sylvestor George
>         Attachments: cpp-repro.zip, go-repro.zip
>
>
> 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
(v6.3.4#6332)

Reply via email to