cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stefania (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-9649) Paxos ballot in StorageProxy could clash
Date Mon, 29 Jun 2015 00:24:04 GMT

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

Stefania commented on CASSANDRA-9649:
-------------------------------------

I've run the tests one more time. Here is my analysis, all tests are either flacky and have
failed at least once in the past on the unpatched branches, or quite simply fail all the time.
For some we definitely have JIRAs but I have not mentioned them here as I don't have the numbers
at hand.

* 2.0 testall:
** no failures

* 2.0 dtest:
** jmxmetrics_test.TestJMXMetrics.begin_test: failed on unpatched 2.0, build #80
** counter_tests.TestCounters.upgrade_test: failed on unpatched 2.0, build #78
** compaction_test.TestCompaction_with_DateTieredCompactionStrategy.sstable_deletion_test:
failed on unpatched 2.0, build #80
** compaction_test.TestCompaction_with_SizeTieredCompactionStrategy.sstable_deletion_test:
failed on unpatched 2.0, build #80
** thrift_hsha_test.ThriftHSHATest.test_closing_connections: failed on unpatched 2.0, build
#76
** repair_test.TestRepair.dc_repair_test: failed on unpatched 2.0, build #69
** paging_test.TestPagingWithDeletions.test_single_partition_deletions: failed on unpatched
2.0, build #72
** paging_test.TestPagingWithDeletions.test_single_row_deletions: failed on unpatched 2.0,
build #62

* 2.1 testall:
** org.apache.cassandra.concurrent.LongSharedExecutorPoolTest.testPromptnessOfExecution: failed
on unpatched 2.1, build #106

* 2.1 dtest:
** jmxmetrics_test.TestJMXMetrics.begin_test: failed on unpatched 2.1, build #154
** repair_test.TestRepair.dc_repair_test: failed on unpatched 2.1, build #154
** compaction_test.TestCompaction_with_DateTieredCompactionStrategy.sstable_deletion_test:
failed on unpatched 2.1, build #154
** compaction_test.TestCompaction_with_SizeTieredCompactionStrategy.sstable_deletion_test:
failed on unpatched 2.1, build #154
** thrift_hsha_test.ThriftHSHATest.test_closing_connections: failed on unpatched 2.1, build
#102
** upgrade_supercolumns_test.TestSCUpgrade.upgrade_with_counters_test: failed on unpatched
2.1, build #122
** cql_tests.MiscellaneousCQLTester.prepared_statement_invalidation_test: failed on unpatched
2.1, build #149

* 2.2 testall:
** org.apache.cassandra.db.lifecycle.ViewTest.testSSTablesInBounds: failed on unpatched 2.2,
build #88
** org.apache.cassandra.db.lifecycle.ViewTest.testSSTablesInBounds-compression: failed on
unpatched 2.2, build #88

* 2.2 dtest:
** consistency_test.TestConsistency.short_read_test: failed on unpatched 2.2, build #72
** jmx_test.TestJMX.cfhistograms_test: failed on unpatched 2.2, build #115
** upgrade_internal_auth_test.TestAuthUpgrade.upgrade_to_30_test: failed on unpatched 2.2,
build #120
** compaction_test.TestCompaction_with_DateTieredCompactionStrategy.sstable_deletion_test:
failed on unpatched 2.2, build #120
** compaction_test.TestCompaction_with_LeveledCompactionStrategy.sstable_deletion_test: failed
on unpatched 2.2, build #120

> Paxos ballot in StorageProxy could clash
> ----------------------------------------
>
>                 Key: CASSANDRA-9649
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-9649
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Stefania
>            Assignee: Stefania
>            Priority: Minor
>
> This code in {{StorageProxy.beginAndRepairPaxos()}} takes a timestamp in microseconds
but divides it by 1000 before adding one. So if the summary is null, ballotMillis would be
the same for up to 1000 possible state timestamp values:
> {code}
>     long currentTime = (state.getTimestamp() / 1000) + 1;
>     long ballotMillis = summary == null
>                                  ? currentTime
>                                  : Math.max(currentTime, 1 +    UUIDGen.unixTimestamp(summary.mostRecentInProgressCommit.ballot));
>     UUID ballot = UUIDGen.getTimeUUID(ballotMillis);
> {code}
> {{state.getTimestamp()}} returns the time in micro seconds and it ensures to add one
microsecond to any previously used timestamp if the client sends the same or an older timestamp.

> Initially I used this code in {{ModificationStatement.casInternal()}}, introduced by
CASSANDRA-9160 to support cas unit tests, but occasionally these tests were failing. It was
only when I ensured uniqueness of the ballot that the tests started to pass reliably.
> I wonder if we could ever have the same issue in StorageProxy?
> cc [~jbellis] and [~slebresne] for CASSANDRA-7801



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message