Skip to content

Commit 72be6a8

Browse files
committed
IGNITE-27947 merge origin/main
# Conflicts: # modules/client-common/src/main/java/org/apache/ignite/internal/client/proto/ProtocolBitmaskFeature.java # modules/client-handler/src/main/java/org/apache/ignite/client/handler/ClientHandlerModule.java # modules/client/src/main/java/org/apache/ignite/internal/client/TcpClientChannel.java
1 parent dfa9bed commit 72be6a8

File tree

395 files changed

+13052
-4209
lines changed

Some content is hidden

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

395 files changed

+13052
-4209
lines changed

.idea/codeStyles/Project.xml

Lines changed: 2 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
$dumpsDir = "%PATH__CRASH_DUMPS%"
2+
$binDir = "%PATH__CMAKE_BUILD_DIRECTORY%\Debug\bin"
3+
$cdb = "C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\cdb.exe"
4+
$symPath = "$dumpsDir;$binDir"
5+
$srcPath = "%PATH__WORKING_DIR%"
6+
7+
if (-not (Test-Path $dumpsDir)) {
8+
Write-Host "Dumps directory '$dumpsDir' does not exist, skipping."
9+
exit 0
10+
}
11+
12+
$dumps = @(Get-ChildItem -Path $dumpsDir -File -Filter "*.dmp")
13+
if ($dumps.Count -eq 0) {
14+
Write-Host "No dump files found in '$dumpsDir', skipping."
15+
exit 0
16+
}
17+
18+
if (-not (Test-Path $cdb)) {
19+
Write-Error "Crash dump analyzer requires cdb.exe, but it was not found at the expected path: '$cdb'. " +
20+
"Ensure the Windows SDK Debuggers are installed and the path is correct."
21+
exit 1
22+
}
23+
24+
foreach ($dump in $dumps) {
25+
Write-Host "##teamcity[buildProblem description='Crash dump detected: $($dump.Name)']"
26+
Write-Host "##teamcity[blockOpened name='Crash analysis: $($dump.Name)']"
27+
28+
& $cdb -z $dump.FullName -y $symPath -srcpath $srcPath -t 0 -c ".symopt+ 0x80000; .reload /f; .lines; .ecxr; ~*kp; q"
29+
30+
Write-Host "##teamcity[blockClosed name='Crash analysis: $($dump.Name)']"
31+
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
$dumpsDir = "%PATH__CRASH_DUMPS%"
2+
$binDir = "%PATH__CMAKE_BUILD_DIRECTORY%\Debug\bin"
3+
4+
if (-not (Test-Path $dumpsDir)) {
5+
Write-Host "Dumps directory '$dumpsDir' does not exist, skipping."
6+
exit 0
7+
}
8+
9+
$dumps = Get-ChildItem -Path $dumpsDir -File -Filter "*.dmp"
10+
if ($dumps.Count -eq 0) {
11+
Write-Host "Dumps directory '$dumpsDir' is empty, skipping."
12+
exit 0
13+
}
14+
15+
Write-Host "Found $($dumps.Count) dump file(s), collecting binaries from CMake build directory."
16+
17+
if (-not (Test-Path $binDir)) {
18+
Write-Error "Bin directory '$binDir' does not exist."
19+
exit 1
20+
}
21+
22+
$dumpNames = $dumps | ForEach-Object { ($_.BaseName -split "\.exe")[0] }
23+
24+
$exes = @(Get-ChildItem -Path "$binDir\*" -File -Include "*.exe" |
25+
Where-Object { $dumpNames -contains $_.BaseName })
26+
27+
$dlls = @(Get-ChildItem -Path "$binDir\*" -File -Include "*.dll")
28+
29+
$binaryNames = @(($exes + $dlls) | ForEach-Object { $_.BaseName })
30+
31+
$pdbs = @(Get-ChildItem -Path "$binDir\*" -File -Include "*.pdb" |
32+
Where-Object { $binaryNames -contains $_.BaseName })
33+
34+
$filesToCopy = @($exes + $dlls + $pdbs)
35+
if ($filesToCopy.Count -eq 0) {
36+
Write-Host "Warning: no matching binaries found in '$binDir'."
37+
exit 0
38+
}
39+
40+
$filesToCopy | ForEach-Object {
41+
Copy-Item -Path $_.FullName -Destination $dumpsDir -Force
42+
Write-Host "Copied: $($_.Name)"
43+
}

.teamcity/org/apache/ignite/teamcity/ApacheIgnite3Teamcity.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,7 @@ class ApacheIgnite3Teamcity {
279279

280280
private val integrationTestGradleModulesList: List<GradleModule> = listOf(
281281
IGNITE__CLI,
282+
IGNITE__CLIENT,
282283
IGNITE__CLIENT_HANDLER,
283284
IGNITE__CLUSTER_MANAGEMENT,
284285
IGNITE__CODE_DEPLOYMENT,

.teamcity/test/build_types/RunPlatformTests.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ object RunPlatformTests : BuildType({
1515
snapshot(PlatformCppOdbcTestsDebLinux) {}
1616
snapshot(PlatformCppOdbcTestsRpmLinux) {}
1717
snapshot(PlatformCppOdbcTestsTgzLinux) {}
18-
// snapshot(PlatformCppTestsWindows) {} // Always falling, under investigation
18+
snapshot(PlatformCppTestsWindows) {}
1919
snapshot(PlatformDotnetTestsWindows) {}
2020
snapshot(PlatformDotnetTestsLinux) {}
2121
snapshot(RunPythonTests) {}

.teamcity/test/platform_tests/PlatformCppTestsLinux.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ object PlatformCppTestsLinux : BuildType({
2020
%PATH__UNIT_TESTS_RESULT% => test_logs
2121
%PATH__CLIENT_TEST_RESULTS% => test_logs
2222
%PATH__CMAKE_BUILD_DIRECTORY%/core => core_dumps
23+
%PATH__CMAKE_BUILD_DIRECTORY%/**/*.log => cmake_logs
2324
""".trimIndent()
2425

2526
params {

.teamcity/test/platform_tests/PlatformCppTestsWindows.kt

Lines changed: 81 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,16 @@
11
package test.platform_tests
22

33
import jetbrains.buildServer.configs.kotlin.BuildType
4-
import jetbrains.buildServer.configs.kotlin.ParameterDisplay
4+
import jetbrains.buildServer.configs.kotlin.BuildStep
55
import jetbrains.buildServer.configs.kotlin.buildFeatures.XmlReport
66
import jetbrains.buildServer.configs.kotlin.buildFeatures.xmlReport
77
import jetbrains.buildServer.configs.kotlin.buildSteps.*
88
import jetbrains.buildServer.configs.kotlin.failureConditions.BuildFailureOnMetric
99
import jetbrains.buildServer.configs.kotlin.failureConditions.BuildFailureOnText
1010
import jetbrains.buildServer.configs.kotlin.failureConditions.failOnMetricChange
1111
import jetbrains.buildServer.configs.kotlin.failureConditions.failOnText
12-
import jetbrains.buildServer.configs.kotlin.triggers.vcs
1312
import org.apache.ignite.teamcity.CustomBuildSteps.Companion.customGradle
14-
import org.apache.ignite.teamcity.CustomBuildSteps.Companion.customScript
13+
import org.apache.ignite.teamcity.CustomBuildSteps.Companion.customPowerShell
1514
import org.apache.ignite.teamcity.Teamcity
1615
import org.apache.ignite.teamcity.Teamcity.Companion.hiddenText
1716

@@ -23,55 +22,53 @@ object PlatformCppTestsWindows : BuildType({
2322
artifactRules = """
2423
%PATH__UNIT_TESTS_RESULT% => test_logs
2524
%PATH__CLIENT_TEST_RESULTS% => test_logs
25+
%PATH__CRASH_DUMPS% => crash_dumps
26+
%PATH__CMAKE_BUILD_DIRECTORY%/**/*.log => cmake_logs
2627
""".trimIndent()
2728

2829
params {
2930
hiddenText("env.IGNITE_CPP_TESTS_USE_SINGLE_NODE", "")
3031
hiddenText("PATH__CMAKE_BUILD_DIRECTORY", """%PATH__WORKING_DIR%\cmake-build-debug""")
3132
hiddenText("PATH__CLIENT_TEST_RESULTS", """%PATH__CMAKE_BUILD_DIRECTORY%\cpp_client_tests_results.xml""")
3233
hiddenText("PATH__ODBC_TEST_RESULTS", """%PATH__CMAKE_BUILD_DIRECTORY%\odbc_tests_results.xml""")
34+
hiddenText("PATH__CRASH_DUMPS", """%PATH__CMAKE_BUILD_DIRECTORY%\dumps""")
3335
hiddenText("PATH__UNIT_TESTS_RESULT", """%PATH__CMAKE_BUILD_DIRECTORY%\cpp_unit_test_results.xml""")
34-
hiddenText("PATH__WORKING_DIR", """%VCSROOT__IGNITE3%\modules\platforms\cpp""")
36+
hiddenText("PATH__WORKING_DIR", """%teamcity.build.checkoutDir%\%VCSROOT__IGNITE3%\modules\platforms\cpp""")
3537
hiddenText("env.CPP_STAGING", """%PATH__WORKING_DIR%\cpp_staging""")
3638
}
3739

3840
steps {
39-
script {
41+
42+
powerShell {
4043
name = "Build C++"
41-
scriptContent = """
42-
@echo on
43-
44-
mkdir %PATH__CMAKE_BUILD_DIRECTORY%
45-
cd %PATH__CMAKE_BUILD_DIRECTORY%
46-
47-
cmake .. -DENABLE_TESTS=ON -DENABLE_ODBC=ON -DWARNINGS_AS_ERRORS=ON -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=%env.CPP_STAGING% -DCMAKE_CONFIGURATION_TYPES="Debug" -G "Visual Studio 15 2017" -A x64
48-
49-
@echo off
50-
if %%ERRORLEVEL%% NEQ 0 (
51-
echo 'CMake configuration failed'
52-
exit 5
53-
)
54-
@echo on
55-
56-
cmake --build . -j8
57-
58-
@echo off
59-
if %%ERRORLEVEL%% NEQ 0 (
60-
echo 'CMake build failed'
61-
exit 6
62-
)
63-
@echo on
64-
65-
cmake --install .
66-
67-
@echo off
68-
if %%ERRORLEVEL%% NEQ 0 (
69-
echo 'CMake install failed'
70-
exit 7
71-
)
72-
@echo on
73-
""".trimIndent()
74-
}
44+
platform = PowerShellStep.Platform.x64
45+
scriptMode = script {
46+
content = """
47+
${'$'}ErrorActionPreference = "Stop"
48+
49+
New-Item -ItemType Directory -Force -Path "%PATH__CMAKE_BUILD_DIRECTORY%" | Out-Null
50+
Set-Location "%PATH__CMAKE_BUILD_DIRECTORY%"
51+
52+
cmake .. -DENABLE_TESTS=ON -DENABLE_ODBC=ON -DWARNINGS_AS_ERRORS=ON -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX="%env.CPP_STAGING%" -DCMAKE_CONFIGURATION_TYPES="Debug" -G "Visual Studio 15 2017" -A x64
53+
if (${'$'}LASTEXITCODE -ne 0) {
54+
Write-Error "CMake configuration failed"
55+
exit 1
56+
}
57+
58+
cmake --build . -j8
59+
if (${'$'}LASTEXITCODE -ne 0) {
60+
Write-Error "CMake build failed"
61+
exit 2
62+
}
63+
64+
cmake --install .
65+
if (${'$'}LASTEXITCODE -ne 0) {
66+
Write-Error "CMake install failed"
67+
exit 3
68+
}
69+
""".trimIndent()
70+
}
71+
}
7572
script {
7673
name = "Unit tests"
7774
workingDir = "%PATH__CMAKE_BUILD_DIRECTORY%"
@@ -83,26 +80,66 @@ object PlatformCppTestsWindows : BuildType({
8380
formatStderrAsError = true
8481
}
8582
customGradle {
86-
name = "Verify runner is builded"
83+
name = "Verify runner is built"
8784
tasks = ":ignite-runner:integrationTestClasses"
8885
}
8986
script {
9087
name = "C++ Client integration tests"
9188
workingDir = "%PATH__CMAKE_BUILD_DIRECTORY%"
92-
scriptContent = """Debug\bin\ignite-client-test --gtest_output=xml:%PATH__CLIENT_TEST_RESULTS%"""
89+
scriptContent = """
90+
mkdir %PATH__CRASH_DUMPS% 2>nul
91+
procdump -accepteula -ma -e -n 1 -x %PATH__CRASH_DUMPS% Debug\bin\ignite-client-test --gtest_output=xml:%PATH__CLIENT_TEST_RESULTS%
92+
if %%ERRORLEVEL%% NEQ 0 if %%ERRORLEVEL%% NEQ -2 (
93+
echo procdump failed unexpectedly with code %%ERRORLEVEL%%
94+
exit /b 1
95+
)
96+
""".trimIndent()
9397
formatStderrAsError = true
9498
}
99+
powerShell {
100+
name = "Install ODBC"
101+
platform = PowerShellStep.Platform.x64
102+
scriptMode = file {
103+
path = "%PATH__WORKING_DIR%\\ignite\\odbc\\install\\install_win.ps1"
104+
}
105+
scriptArgs = "install \"%PATH__CMAKE_BUILD_DIRECTORY%\\Debug\\bin\\ignite3-odbc.dll\""
106+
}
95107
script {
96108
name = "ODBC integration tests"
97-
enabled = false
98109
workingDir = "%PATH__CMAKE_BUILD_DIRECTORY%"
99-
scriptContent = """Debug\bin\ignite-odbc-test --gtest_output=xml:%PATH__ODBC_TEST_RESULTS%"""
110+
scriptContent = """
111+
mkdir %PATH__CRASH_DUMPS% 2>nul
112+
procdump -accepteula -ma -e -n 1 -x %PATH__CRASH_DUMPS% Debug\bin\ignite-odbc-test --gtest_output=xml:%PATH__ODBC_TEST_RESULTS%
113+
if %%ERRORLEVEL%% NEQ 0 if %%ERRORLEVEL%% NEQ -2 (
114+
echo procdump failed unexpectedly with code %%ERRORLEVEL%%
115+
exit /b 1
116+
)
117+
""".trimIndent()
100118
formatStderrAsError = true
101119
}
120+
powerShell {
121+
name = "Remove ODBC"
122+
platform = PowerShellStep.Platform.x64
123+
scriptMode = file {
124+
path = "%PATH__WORKING_DIR%\\ignite\\odbc\\install\\install_win.ps1"
125+
}
126+
scriptArgs = "remove"
127+
executionMode = BuildStep.ExecutionMode.ALWAYS
128+
}
129+
customPowerShell {
130+
name = "Collect debug artifacts for crash dumps"
131+
workingDir = "%PATH__CMAKE_BUILD_DIRECTORY%"
132+
executionMode = BuildStep.ExecutionMode.RUN_ON_FAILURE
133+
}
134+
customPowerShell {
135+
name = "Analyze crash dumps"
136+
workingDir = "%PATH__CMAKE_BUILD_DIRECTORY%"
137+
executionMode = BuildStep.ExecutionMode.RUN_ON_FAILURE
138+
}
102139
}
103140

104141
failureConditions {
105-
executionTimeoutMin = 20
142+
executionTimeoutMin = 40
106143
failOnMetricChange {
107144
metric = BuildFailureOnMetric.MetricType.TEST_COUNT
108145
threshold = 5

.teamcity/test/platform_tests/PlatformDotnetTestsLinux.kt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,18 @@ object PlatformDotnetTestsLinux : BuildType({
105105
failureMessage = "NullReferenceException in log"
106106
reverse = false
107107
}
108+
failOnText {
109+
conditionType = BuildFailureOnText.ConditionType.CONTAINS
110+
pattern = "Unexpected notification ID"
111+
failureMessage = "Unexpected notification ID in log"
112+
reverse = false
113+
}
114+
failOnText {
115+
conditionType = BuildFailureOnText.ConditionType.CONTAINS
116+
pattern = "Unexpected response ID"
117+
failureMessage = "Unexpected response ID in log"
118+
reverse = false
119+
}
108120
}
109121

110122
requirements {

docs/package-lock.json

Lines changed: 12 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)