You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Russ Hatch (JIRA)" <ji...@apache.org> on 2016/07/11 19:59:11 UTC
[jira] [Created] (CASSANDRA-12171) counter mismatch during rolling
upgrade from 2.2 to 3.0
Russ Hatch created CASSANDRA-12171:
--------------------------------------
Summary: counter mismatch during rolling upgrade from 2.2 to 3.0
Key: CASSANDRA-12171
URL: https://issues.apache.org/jira/browse/CASSANDRA-12171
Project: Cassandra
Issue Type: Bug
Reporter: Russ Hatch
Assignee: Aleksey Yeschenko
This may occur on other versions, but 3.0 is where I observed it recently.
N=RF=3, counter writes at quorum, reads at quorum.
This is being seen on some upgrade tests I'm currently repairing here: https://github.com/riptano/cassandra-dtest/tree/upgrade_counters_fix (this branch is to resolve an issue where counters were not being properly tested during rolling upgrade tests).
The test runs a continuous counter incrementing process, as well as a continuous counter checking process. Once a counter value has been verified, the test code makes it eligible to be incremented again.
The test is encountering the problem when trying to check an expected counter value and not matching expectations, for example:
{noformat}
Traceback (most recent call last):
File "/usr/lib/python2.7/multiprocessing/process.py", line 258, in _bootstrap
self.run()
File "/usr/lib/python2.7/multiprocessing/process.py", line 114, in run
self._target(*self._args, **self._kwargs)
File "/home/rhatch/git/cstar/cassandra-dtest/upgrade_tests/upgrade_through_versions_test.py", line 210, in counter_checker
tester.assertEqual(expected_count, actual_count)
File "/usr/lib/python2.7/unittest/case.py", line 513, in assertEqual
assertion_func(first, second, msg=msg)
File "/usr/lib/python2.7/unittest/case.py", line 506, in _baseAssertEqual
raise self.failureException(msg)
AssertionError: 1 != 2
ERROR
{noformat}
To check if something else could be going on, I did an experiment where I changed the test to not upgrade nodes (just drain, stop, start) and the mismatch didn't occur in several attempts. So it appears something about upgrading is possibly the culprit.
To run the test and repro locally:
{noformat}
grab my dtest branch at https://github.com/riptano/cassandra-dtest/tree/upgrade_counters_fix
export UPGRADE_TEST_RUN=true
nosetests -v upgrade_tests/upgrade_through_versions_test.py:TestUpgrade_current_2_2_x_To_indev_3_0_x.rolling_upgrade_test
{noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)