Skip to content

Commit 778a38b

Browse files
authored
Merge pull request ClickHouse#87924 from azat/tests/test_trace_log_memory_context
tests: fix flakiness of test_trace_log_memory_context
2 parents d3567db + 7d48d24 commit 778a38b

File tree

2 files changed

+42
-9
lines changed

2 files changed

+42
-9
lines changed

tests/integration/test_trace_log_memory_context/configs/overrides.xml

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,23 @@
66
<trace_log>
77
<!-- jemalloc has too many events, which leads to slower testing with default value 1KK -->
88
<max_size_rows>100000</max_size_rows>
9+
<symbolize>false</symbolize>
910
</trace_log>
1011

11-
<text_log remove="remove" />
12+
<query_masking_rules remove="remove"/>
13+
<query_thread_log remove="remove"/>
14+
<query_log remove="remove" />
15+
<query_metric_log remove="remove" />
16+
<query_views_log remove="remove" />
17+
<metric_log remove="remove"/>
18+
<error_log remove="remove"/>
19+
<text_log remove="remove"/>
20+
<asynchronous_metric_log remove="remove" />
21+
<session_log remove="remove" />
22+
<part_log remove="remove" />
23+
<crash_log remove="remove" />
24+
<opentelemetry_span_log remove="remove" />
25+
<iceberg_metadata_log remove="remove" />
26+
<zookeeper_log remove="remove" />
27+
<transactions_info_log remove="remove" />
1228
</clickhouse>

tests/integration/test_trace_log_memory_context/test.py

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import uuid
2-
2+
import time
3+
import logging
34
import pytest
45

56
from helpers.cluster import ClickHouseCluster
@@ -29,7 +30,7 @@ def test_memory_context_in_trace_log(started_cluster):
2930
pytest.skip("sanitizers built without jemalloc")
3031

3132
def get_trace_events(memory_context, memory_blocked_context, trace_type, query_id=None):
32-
return int(node.query(f"""
33+
res = int(node.query(f"""
3334
SELECT count() FROM system.trace_log
3435
WHERE
3536
/* Do not take into account data from other test runs */
@@ -39,13 +40,29 @@ def get_trace_events(memory_context, memory_blocked_context, trace_type, query_i
3940
AND trace_type = '{trace_type}'
4041
AND {'empty(query_id)' if query_id is None else f"query_id = '{query_id}'"}
4142
""").strip())
43+
logging.info('memory_context=%s/memory_blocked_context=%s/trace_type=%s/query_id=%s: %s',
44+
memory_context, memory_blocked_context, trace_type, query_id, res)
45+
return res
46+
47+
for _ in range(0, 15):
48+
# Generate some logs to generate entries with memory_blocked_context=Global and trace_type=JemallocSample
49+
for i in range(10):
50+
node.query("SELECT logTrace('foo')")
51+
query_id = uuid.uuid4().hex
52+
node.query("SELECT * FROM numbers(100000) ORDER BY number", query_id=query_id)
4253

43-
# Generate some logs to generate entries with memory_blocked_context=Global and trace_type=JemallocSample
44-
for i in range(10):
45-
node.query("SELECT logTrace('foo')")
46-
query_id = uuid.uuid4().hex
47-
node.query("SELECT * FROM numbers(100000) ORDER BY number", query_id=query_id)
48-
node.query("SYSTEM FLUSH LOGS system.trace_log")
54+
node.query("SYSTEM FLUSH LOGS system.trace_log")
55+
if (
56+
get_trace_events("Unknown", "Max", "MemorySample", query_id) > 0 and
57+
get_trace_events("Unknown", "Max", "JemallocSample", query_id) > 0 and
58+
get_trace_events("Unknown", "Max", "JemallocSample") > 0 and
59+
get_trace_events("Unknown", "Global", "JemallocSample") > 0 and
60+
get_trace_events("Global", "Max", "Memory") > 0 and
61+
get_trace_events("Global", "Max", "MemoryPeak") > 0 and
62+
True
63+
):
64+
break
65+
time.sleep(1)
4966

5067
# For JemallocSample we have Global (for i.e. logging) and Max (for regular allocations) blocked memory tracker
5168
for memory_blocked_context in ["Global", "Max"]:

0 commit comments

Comments
 (0)