Skip to content

Commit fc1a7ff

Browse files
authored
Merge branch 'ydb-platform:main' into main
2 parents c03436e + 7fac168 commit fc1a7ff

File tree

1,328 files changed

+89243
-76588
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,328 files changed

+89243
-76588
lines changed

.github/scripts/analytics/data_mart_queries/stability_aggregate_mart.sql

Lines changed: 299 additions & 228 deletions
Large diffs are not rendered by default.

.github/scripts/analytics/data_mart_queries/stability_per_run_mart.sql

Lines changed: 92 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,12 @@ $per_run_data = SELECT
2222
JSON_QUERY(Stats, '$.node_error_messages') AS NodeErrorMessages, -- JSON массив с ошибками нод (если доступен)
2323
CAST(JSON_VALUE(Stats, '$.run_id') AS Uint64) AS StatsRunId,
2424

25+
-- Поля для кластерных проблем (NULL для обычных записей)
26+
NULL AS ClusterIssueType,
27+
NULL AS ClusterIssueDescription,
28+
NULL AS ClusterIssuePhase,
29+
0U AS ClusterIssueCritical,
30+
2531
-- Извлекаем информацию о кластере из Info JSON
2632
JSON_VALUE(Info, '$.cluster.version') AS ClusterVersion,
2733
-- Создаем ссылку на GitHub commit из версии кластера (main.108fc20 -> https://github.com/ydb-platform/ydb/commit/108fc20)
@@ -59,7 +65,78 @@ FROM `nemesis/tests_results`
5965
WHERE
6066
CAST(RunId AS Uint64) / 1000 > $run_id_limit
6167
AND Kind = 'Stability'
62-
AND JSON_VALUE(Stats, '$.aggregation_level') = 'per_run';
68+
AND JSON_VALUE(Stats, '$.aggregation_level') = 'per_run'
69+
70+
UNION ALL
71+
72+
-- Добавляем записи ClusterCheck как специальные per_run записи
73+
SELECT
74+
Db,
75+
Suite,
76+
Test,
77+
RunId,
78+
Timestamp,
79+
Success,
80+
0.0 AS Duration, -- Кластерные проблемы не имеют длительности
81+
82+
-- Поля per_run (NULL для кластерных проблем)
83+
NULL AS Iteration,
84+
NULL AS RunIndex,
85+
CASE
86+
WHEN JSON_VALUE(Stats, '$.issue_type') = 'cluster_not_alive' THEN 'cluster_not_alive'
87+
WHEN JSON_VALUE(Stats, '$.issue_type') = 'cluster_no_nodes' THEN 'cluster_no_nodes'
88+
WHEN JSON_VALUE(Stats, '$.issue_type') = 'cluster_check_exception' THEN 'cluster_check_exception'
89+
WHEN JSON_VALUE(Stats, '$.issue_type') = 'cluster_unknown_issue' THEN 'cluster_unknown_issue'
90+
WHEN Success = 0U THEN 'cluster_issue'
91+
ELSE 'cluster_ok'
92+
END AS Resolution,
93+
0U AS NemesisEnabled,
94+
JSON_VALUE(Stats, '$.issue_description') AS ErrorMessage,
95+
NULL AS WarningMessage,
96+
NULL AS NodeErrorMessages,
97+
CAST(RunId AS Uint64) AS StatsRunId,
98+
99+
-- Поля для кластерных проблем
100+
JSON_VALUE(Stats, '$.issue_type') AS ClusterIssueType,
101+
JSON_VALUE(Stats, '$.issue_description') AS ClusterIssueDescription,
102+
JSON_VALUE(Stats, '$.verification_phase') AS ClusterIssuePhase,
103+
CASE WHEN JSON_VALUE(Stats, '$.is_critical') = 'true' THEN 1U ELSE 0U END AS ClusterIssueCritical,
104+
105+
-- Извлекаем информацию о кластере из Info JSON (может быть NULL для кластерных проблем)
106+
JSON_VALUE(Info, '$.cluster.version') AS ClusterVersion,
107+
CASE
108+
WHEN JSON_VALUE(Info, '$.cluster.version') IS NOT NULL THEN
109+
'https://github.com/ydb-platform/ydb/commit/' || String::SplitToList(JSON_VALUE(Info, '$.cluster.version'), '.')[1]
110+
ELSE NULL
111+
END AS ClusterVersionLink,
112+
JSON_VALUE(Info, '$.cluster.endpoint') AS ClusterEndpoint,
113+
JSON_VALUE(Info, '$.cluster.database') AS ClusterDatabase,
114+
CASE
115+
WHEN JSON_VALUE(Info, '$.cluster.endpoint') IS NOT NULL THEN
116+
String::SplitToList(String::SplitToList(JSON_VALUE(Info, '$.cluster.endpoint'), '//')[1], ':')[0] || ':8765'
117+
ELSE NULL
118+
END AS ClusterMonitoring,
119+
CAST(JSON_VALUE(Info, '$.cluster.nodes_count') AS Int32) AS NodesCount,
120+
JSON_QUERY(Info, '$.cluster.nodes_info') AS NodesInfo,
121+
JSON_VALUE(Info, '$.ci_version') AS CiVersion,
122+
JSON_VALUE(Info, '$.test_tools_version') AS TestToolsVersion,
123+
JSON_VALUE(Info, '$.report_url') AS ReportUrl,
124+
JSON_VALUE(Info, '$.ci_launch_id') AS CiLaunchId,
125+
JSON_VALUE(Info, '$.ci_launch_url') AS CiLaunchUrl,
126+
JSON_VALUE(Info, '$.ci_launch_start_time') AS CiLaunchStartTime,
127+
JSON_VALUE(Info, '$.ci_job_title') AS CiJobTitle,
128+
JSON_VALUE(Info, '$.ci_cluster_name') AS CiClusterName,
129+
JSON_VALUE(Info, '$.ci_nemesis') AS CiNemesis,
130+
JSON_VALUE(Info, '$.ci_build_type') AS CiBuildType,
131+
JSON_VALUE(Info, '$.ci_sanitizer') AS CiSanitizer,
132+
133+
-- Порядок выполнения теста в рамках RunId (на основе Timestamp)
134+
ROW_NUMBER() OVER (PARTITION BY RunId ORDER BY Timestamp) AS OrderInRun
135+
136+
FROM `nemesis/tests_results`
137+
WHERE
138+
CAST(RunId AS Uint64) / 1000 > $run_id_limit
139+
AND Kind = 'ClusterCheck';
63140

64141
SELECT
65142
Db,
@@ -95,6 +172,10 @@ SELECT
95172
TestToolsVersion,
96173
ReportUrl,
97174
CiLaunchId,
175+
ClusterIssueType,
176+
ClusterIssueDescription,
177+
ClusterIssuePhase,
178+
ClusterIssueCritical,
98179
OrderInRun,
99180

100181
-- Извлекаем ветку из версии
@@ -119,8 +200,17 @@ SELECT
119200
)
120201
END AS FacedNodeErrors,
121202

122-
-- Статус выполнения
203+
-- Статус выполнения с детализацией кластерных проблем
123204
CASE
205+
-- Конкретные типы кластерных проблем
206+
WHEN Resolution = 'cluster_not_alive' THEN 'cluster_not_alive'
207+
WHEN Resolution = 'cluster_no_nodes' THEN 'cluster_no_nodes'
208+
WHEN Resolution = 'cluster_check_exception' THEN 'cluster_check_exception'
209+
WHEN Resolution = 'cluster_unknown_issue' THEN 'cluster_unknown_issue'
210+
WHEN Resolution = 'cluster_issue' THEN 'cluster_issue' -- Fallback
211+
WHEN Resolution = 'cluster_ok' THEN 'cluster_check_passed'
212+
213+
-- Обычные статусы workload
124214
WHEN Resolution = 'ok' THEN 'success'
125215
WHEN Resolution = 'error' THEN 'error'
126216
WHEN Resolution = 'timeout' THEN 'timeout'

.github/workflows/docs_assign_review.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
name: Assign a reviewer for documentation
22

3-
on:
4-
pull_request_target:
5-
types: [opened]
3+
# on:
4+
# pull_request_target:
5+
# types: [opened]
66

77
jobs:
88
assign-docs-reviewer:

build/conf/custom_lint.conf

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
JSON_LINTER_DEFAULT_CONFIGS=build/config/tests/json_style/default_configs.json
2+
3+
4+
# tag:lint tag:internal
5+
macro _CUSTOM_LINT_FILES(GLOB_VAR, EXT, DIRS[], DIRS_RECURSE[]) {
6+
_GLOB(${GLOB_VAR} ${suf=/*.(${EXT}):DIRS} ${suf=/**/*.(${EXT}):DIRS_RECURSE} ${suf=/**/ya.make:DIRS_RECURSE} ${suf=/ya.make:DIRS} EXCLUDE ya.make)
7+
}
8+
9+
# tag: internal
10+
macro _ADD_JSON_EXPLICIT_LINTER_CHECK(Args...) {
11+
SET_APPEND(_MAKEFILE_INCLUDE_LIKE_DEPS ${ARCADIA_ROOT}/${JSON_LINTER_DEFAULT_CONFIGS})
12+
}
13+
14+
# tag:lint tag:test
15+
### @usage: STYLE_JSON([DIRS dirs] [DIRS_RECURSE dirs_recurse])
16+
macro STYLE_JSON(DIRS[], DIRS_RECURSE[]) {
17+
# XXX: _MAKEFILE_INCLUDE_LIKE_DEPS is extended to get linter wrapper exported to opensource
18+
SET_APPEND(_MAKEFILE_INCLUDE_LIKE_DEPS ${ARCADIA_ROOT}/tools/clang_format_json_linter/wrapper.py)
19+
SET(_VAR_JSON_LINT_FILES_SALT __DIRS__ ${DIRS} __DIRS_RECURSE__ ${DIRS_RECURSE})
20+
SET(_CUSTOM_JSON_LINT_FILES_GLOB uniq_json_lint_files_${hash:_VAR_JSON_LINT_FILES_SALT})
21+
_CUSTOM_LINT_FILES(${_CUSTOM_JSON_LINT_FILES_GLOB} json DIRS .${pre=/:DIRS} DIRS_RECURSE $DIRS_RECURSE)
22+
_ADD_JSON_EXPLICIT_LINTER_CHECK(NAME clang_format_json WRAPPER_SCRIPT tools/clang_format_json_linter/wrapper.py CONFIGS $JSON_LINTER_DEFAULT_CONFIGS FILES ${${_CUSTOM_JSON_LINT_FILES_GLOB}})
23+
}

build/conf/go.conf

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,9 @@ when ($GOSTD_VERSION == "1.23") {
7272
elsewhen ($GOSTD_VERSION == "1.24") {
7373
GOSTD=contrib/go/_std_1.24/src
7474
}
75+
elsewhen ($GOSTD_VERSION == "1.25") {
76+
GOSTD=contrib/go/_std_1.25/src
77+
}
7578
otherwise {
7679
GOSTD=__unsupported_go_std_library_version_[$GOSTD_VERSION]__
7780
}

build/conf/java.conf

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1510,9 +1510,9 @@ when (!$USE_SYSTEM_ERROR_PRONE) {
15101510
ERROR_PRONE_RESOURCE=$ERROR_PRONE_2_30_0_RESOURCE_GLOBAL
15111511
}
15121512
elsewhen ($JDK_REAL_VERSION == "24" || $JDK_REAL_VERSION == "25") {
1513-
ERROR_PRONE_VERSION=2.41.0
1514-
ERROR_PRONE_PEERDIR=build/platform/java/error_prone/2.41.0
1515-
ERROR_PRONE_RESOURCE=$ERROR_PRONE_2_41_0_RESOURCE_GLOBAL
1513+
ERROR_PRONE_VERSION=2.42.0
1514+
ERROR_PRONE_PEERDIR=build/platform/java/error_prone/2.42.0
1515+
ERROR_PRONE_RESOURCE=$ERROR_PRONE_2_42_0_RESOURCE_GLOBAL
15161516
JAVAC_FLAGS_VALUE+=$ERROR_PRONE_2_3_7_FORCED_OPTS
15171517
JAVAC_OPTS+=$ERROR_PRONE_2_3_7_FORCED_OPTS
15181518
}

build/export_generators/ide-gradle/build.gradle.kts.common.jinja

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
{%- include "[generator]/repositories.jinja" -%}
21
{%- include "[generator]/publish.jinja" -%}
32

43
{#- Compiler flags -#}

build/export_generators/ide-gradle/builddir.jinja

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ var mkBuildDir = tasks.register("mkBuildDir") {
1616
doFirst {
1717
mkdir(layout.buildDirectory.asFile.get())
1818
}
19+
onlyIf {
20+
!layout.buildDirectory.asFile.get().exists()
21+
}
1922
}
2023

2124
tasks.withType<JavaExec>().configureEach {

build/export_generators/ide-gradle/codegen_from_sandbox.jinja

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
{%- for from_sandbox in current_target.from_sandboxes %}
44

55
val {{ varprefix }}{{ from_sandbox['_object_index'] }} = tasks.register<Exec>("{{ varprefix }}{{ from_sandbox['_object_index'] }}") {
6-
workingDir(layout.buildDirectory.dir("{%- if from_sandbox.reldir != "." -%}/{{ from_sandbox.reldir }}{%- endif -%}"))
6+
workingDir(layout.buildDirectory{%- if from_sandbox.reldir != "." -%}.dir("/{{ from_sandbox.reldir }}"){%- endif -%})
77
commandLine("bash", "-c", listOf(
88
"{{ arcadia_root }}/ya",
99
"download",

build/export_generators/ide-gradle/repositories.jinja

Lines changed: 0 additions & 14 deletions
This file was deleted.

0 commit comments

Comments
 (0)