You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Michael Semb Wever (Jira)" <ji...@apache.org> on 2023/01/15 11:52:00 UTC
[jira] [Updated] (CASSANDRA-18163) Test Failure: transient_replication_test.TestTransientReplicationRepairLegacyStreaming.test_speculative_write_repair_cycle
[ https://issues.apache.org/jira/browse/CASSANDRA-18163?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Michael Semb Wever updated CASSANDRA-18163:
-------------------------------------------
Fix Version/s: 4.0.x
4.1.x
4.x
> Test Failure: transient_replication_test.TestTransientReplicationRepairLegacyStreaming.test_speculative_write_repair_cycle
> --------------------------------------------------------------------------------------------------------------------------
>
> Key: CASSANDRA-18163
> URL: https://issues.apache.org/jira/browse/CASSANDRA-18163
> Project: Cassandra
> Issue Type: Bug
> Components: Test/dtest/python
> Reporter: Michael Semb Wever
> Priority: Normal
> Fix For: 4.0.x, 4.1.x, 4.x
>
>
> Flaky.
> {noformat}
> self = <transient_replication_test.TestTransientReplicationRepairLegacyStreaming object at 0x7fbaa96e04c0>
> @pytest.mark.no_vnodes
> def test_speculative_write_repair_cycle(self):
> """ incremental repair from full replica should remove data on node3 """
> > self._test_speculative_write_repair_cycle(primary_range=False,
> optimized_repair=False,
> repair_coordinator=self.node1,
> expect_node3_data=False)
> transient_replication_test.py:504:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> self = <transient_replication_test.TestTransientReplicationRepairLegacyStreaming object at 0x7fbaa96e04c0>
> primary_range = False, optimized_repair = False
> repair_coordinator = <ccmlib.node.Node object at 0x7fbaa9a2d160>
> expect_node3_data = False, use_lcs = False
> def _test_speculative_write_repair_cycle(self, primary_range, optimized_repair, repair_coordinator, expect_node3_data, use_lcs=False):
> """
> if one of the full replicas is not available, data should be written to the transient replica, but removed after incremental repair
> """
> for node in self.nodes:
> self.assert_has_no_sstables(node)
>
> if use_lcs:
> self.use_lcs()
>
> self.node2.byteman_submit([mk_bman_path('stop_writes.btm')])
> # self.insert_row(1)
> tm = lambda n: self.table_metrics(n)
> with tm(self.node1) as tm1, tm(self.node2) as tm2, tm(self.node3) as tm3:
> assert tm1.write_count == 0
> assert tm2.write_count == 0
> assert tm3.write_count == 0
> self.insert_row(1, 1, 1)
> assert tm1.write_count == 1
> assert tm2.write_count == 0
> assert tm3.write_count == 1
>
> self.assert_has_sstables(self.node1, flush=True)
> self.assert_has_no_sstables(self.node2, flush=True)
> self.assert_has_sstables(self.node3, flush=True)
>
> repair_opts = ['repair', self.keyspace]
> if primary_range: repair_opts.append('-pr')
> if optimized_repair: repair_opts.append('-os')
> self.node1.nodetool(' '.join(repair_opts))
>
> self.assert_has_sstables(self.node1, compact=True)
> self.assert_has_sstables(self.node2, compact=True)
> if expect_node3_data:
> self.assert_has_sstables(self.node3, compact=True)
> else:
> self.assert_has_no_sstables(self.node3, compact=True)
>
> entire_sstable = "true" if self.stream_entire_sstables() else "false"
> > assert self.node2.grep_log('Incoming stream entireSSTable={}'.format(entire_sstable), filename='debug.log')
> E AssertionError: assert []
> E + where [] = <bound method Node.grep_log of <ccmlib.node.Node object at 0x7fbaa96f4700>>('Incoming stream entireSSTable=false', filename='debug.log')
> E + where <bound method Node.grep_log of <ccmlib.node.Node object at 0x7fbaa96f4700>> = <ccmlib.node.Node object at 0x7fbaa96f4700>.grep_log
> E + where <ccmlib.node.Node object at 0x7fbaa96f4700> = <transient_replication_test.TestTransientReplicationRepairLegacyStreaming object at 0x7fbaa96e04c0>.node2
> E + and 'Incoming stream entireSSTable=false' = <built-in method format of str object at 0x7fbaa960f150>('false')
> E + where <built-in method format of str object at 0x7fbaa960f150> = 'Incoming stream entireSSTable={}'.format
> transient_replication_test.py:499: AssertionError
> {noformat}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org