Skip to content

Commit ba8db80

Browse files
aleksbykovvponomaryov
authored andcommitted
fix(enable_default_filters): move DB event filter for raft error to default filters
PR scylladb/scylla-cluster-tests/#10386 filter some expected raft error messages globally. But this change broke integration unit test. Issue #10676. Move DB event Filter from `ignore_topology_change_coordinator_errors` context manager to `enable_default_filters`. If the event will be filtered globally, then no need to filter it with cm. Fixes #10676 (cherry picked from commit 987afc1)
1 parent 5ba1bee commit ba8db80

File tree

3 files changed

+13
-9
lines changed

3 files changed

+13
-9
lines changed

sdcm/sct_events/group_common_events.py

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -98,12 +98,6 @@ def ignore_topology_change_coordinator_errors():
9898
line=r".*raft_topology - topology change coordinator fiber got error exceptions::unavailable_exception "
9999
r"\(Cannot achieve consistency level for cl ALL\.",
100100
))
101-
stack.enter_context(DbEventsFilter(
102-
db_event=DatabaseLogEvent.RUNTIME_ERROR,
103-
line=r".*raft_topology - topology change coordinator fiber got error std::runtime_error"
104-
r" \(raft topology: exec_global_command\(barrier\) failed with seastar::rpc::closed_erro"
105-
r"r \(connection is closed\)\)"
106-
))
107101
stack.enter_context(DbEventsFilter(
108102
db_event=DatabaseLogEvent.RUNTIME_ERROR,
109103
line=r".*raft_topology - drain rpc failed, proceed to fence old writes:.*connection is closed",

sdcm/sct_events/setup.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
EVENTS_GRAFANA_ANNOTATOR_ID, EVENTS_GRAFANA_AGGREGATOR_ID, EVENTS_GRAFANA_POSTMAN_ID, \
3535
EventsProcessesRegistry, create_default_events_process_registry, get_events_process, EVENTS_HANDLER_ID, EVENTS_COUNTER_ID
3636
from sdcm.utils.issues import SkipPerIssues
37-
from sdcm.sct_events.group_common_events import ignore_topology_change_coordinator_errors
3837

3938

4039
EVENTS_DEVICE_START_DELAY = 1 # seconds
@@ -157,7 +156,10 @@ def enable_default_filters(sct_config: SCTConfiguration): # pylint: disable=unu
157156
# upgrades and any place where the race between raft global barrier and gossipier could
158157
# take place. So ignore such messages globally for any sct test.
159158
# TODO: this should be removed after gossiper will be removed.
160-
ignore_topology_change_coordinator_errors().__enter__()
159+
DbEventsFilter(db_event=DatabaseLogEvent.RUNTIME_ERROR,
160+
line=r".*raft_topology - topology change coordinator fiber got error std::runtime_error"
161+
r" \(raft topology: exec_global_command\(barrier\) failed with seastar::rpc::closed_error"
162+
r" \(connection is closed\)\)").publish()
161163

162164

163165
__all__ = ("start_events_device", "stop_events_device", "enable_default_filters")

unit_tests/test_events.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -412,7 +412,7 @@ def test_default_filters(self):
412412
with environment(SCT_CLUSTER_BACKEND='docker'):
413413
enable_default_filters(SCTConfiguration())
414414

415-
with self.wait_for_n_events(self.get_events_logger(), count=4):
415+
with self.wait_for_n_events(self.get_events_logger(), count=5):
416416
DatabaseLogEvent.BACKTRACE() \
417417
.add_info(node="A",
418418
line_number=22,
@@ -439,6 +439,13 @@ def test_default_filters(self):
439439
".c.sct-project-1.internal/10.142.1.155:9042: Cannot achieve consistency level for cl ONE. Requires 1, alive 0",
440440
).publish()
441441

442+
DatabaseLogEvent.RUNTIME_ERROR().add_info(
443+
node="A",
444+
line_number=22,
445+
line="ERROR 2023-12-18 12:45:25,673 [shard 0: gms] raft_topology - topology change coordinator fiber got error std::runtime_error "
446+
"(raft topology: exec_global_command(barrier) failed with seastar::rpc::closed_error (connection is closed))"
447+
).publish()
448+
442449
log_content = self.get_event_log_file("events.log")
443450

444451
self.assertIn("other back trace", log_content)
@@ -451,6 +458,7 @@ def test_default_filters(self):
451458
error_log_content = self.get_event_log_file("error.log")
452459
assert 'data_dictionary::no_such_column_family' not in error_log_content
453460
assert 'Authentication error' in error_log_content
461+
assert 'topology change coordinator fiber got error' not in error_log_content
454462

455463
def test_failed_stall_during_filter(self):
456464
with self.wait_for_n_events(self.get_events_logger(), count=5, timeout=3):

0 commit comments

Comments
 (0)