Skip to content

Commit 149a437

Browse files
authored
Merge branch 'antalya-25.8' into export_replicated_mt_partition_v2
2 parents f23ed2d + 6c60493 commit 149a437

File tree

7 files changed

+62
-25
lines changed

7 files changed

+62
-25
lines changed

.github/workflows/master.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4178,7 +4178,7 @@ jobs:
41784178
secrets: inherit
41794179
with:
41804180
runner_type: altinity-on-demand, altinity-regression-tester
4181-
commit: 3fbe58a0ebe8fa5f97b7f36c45a2a69b1d3b6568
4181+
commit: fc19ce3a7322a10ab791de755c950a56744a12e7
41824182
arch: release
41834183
build_sha: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
41844184
timeout_minutes: 300
@@ -4190,7 +4190,7 @@ jobs:
41904190
secrets: inherit
41914191
with:
41924192
runner_type: altinity-on-demand, altinity-regression-tester-aarch64
4193-
commit: 3fbe58a0ebe8fa5f97b7f36c45a2a69b1d3b6568
4193+
commit: fc19ce3a7322a10ab791de755c950a56744a12e7
41944194
arch: aarch64
41954195
build_sha: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
41964196
timeout_minutes: 300

.github/workflows/pull_request.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4134,7 +4134,7 @@ jobs:
41344134
secrets: inherit
41354135
with:
41364136
runner_type: altinity-on-demand, altinity-regression-tester
4137-
commit: 3fbe58a0ebe8fa5f97b7f36c45a2a69b1d3b6568
4137+
commit: fc19ce3a7322a10ab791de755c950a56744a12e7
41384138
arch: release
41394139
build_sha: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
41404140
timeout_minutes: 300
@@ -4146,7 +4146,7 @@ jobs:
41464146
secrets: inherit
41474147
with:
41484148
runner_type: altinity-on-demand, altinity-regression-tester-aarch64
4149-
commit: 3fbe58a0ebe8fa5f97b7f36c45a2a69b1d3b6568
4149+
commit: fc19ce3a7322a10ab791de755c950a56744a12e7
41504150
arch: aarch64
41514151
build_sha: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
41524152
timeout_minutes: 300

.gitmodules

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
url = https://github.com/Thalhammer/jwt-cpp
77
[submodule "contrib/zstd"]
88
path = contrib/zstd
9-
url = https://github.com/facebook/zstd
9+
url = https://github.com/ClickHouse/zstd.git
1010
[submodule "contrib/lz4"]
1111
path = contrib/lz4
1212
url = https://github.com/lz4/lz4
@@ -45,7 +45,7 @@
4545
url = https://github.com/ClickHouse/arrow
4646
[submodule "contrib/thrift"]
4747
path = contrib/thrift
48-
url = https://github.com/apache/thrift
48+
url = https://github.com/ClickHouse/thrift.git
4949
[submodule "contrib/libhdfs3"]
5050
path = contrib/libhdfs3
5151
url = https://github.com/ClickHouse/libhdfs3

ci/praktika/native_jobs.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
from .runtime import RunConfig
1919
from .settings import Settings
2020
from .utils import Shell, Utils
21+
from ci.defs.defs import ArtifactNames
2122

2223
assert Settings.CI_CONFIG_RUNS_ON
2324

@@ -403,17 +404,22 @@ def check_affected_jobs():
403404
# NOTE (strtgbb): We always want these build artifacts for our report and regression tests.
404405
# If we make FinishCIReport and regression tests into praktika jobs, we can remove this.
405406
if "CIReport" in workflow.additional_jobs:
406-
all_required_artifacts.update(["CH_AMD_RELEASE", "CH_ARM_RELEASE"])
407+
all_required_artifacts.update(
408+
[
409+
ArtifactNames.CH_AMD_RELEASE,
410+
ArtifactNames.CH_ARM_RELEASE,
411+
]
412+
)
407413
if (
408414
"Regression" in workflow.additional_jobs
409415
and "regression"
410416
not in workflow_config.custom_data.get("ci_exclude_tags", [])
411417
):
412-
all_required_artifacts.update(["CH_AMD_BINARY"])
418+
all_required_artifacts.update([ArtifactNames.CH_AMD_BINARY])
413419
if "aarch64" not in workflow_config.custom_data.get(
414420
"ci_exclude_tags", []
415421
):
416-
all_required_artifacts.update(["CH_ARM_BINARY"])
422+
all_required_artifacts.update([ArtifactNames.CH_ARM_BINARY])
417423
print(f"Including artifacts for custom jobs [{all_required_artifacts}]")
418424

419425
for job in workflow.jobs:

ci/praktika/yaml_additional_templates.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ class AltinityWorkflowTemplates:
3535
echo "Workflow Run Report: [View Report]($REPORT_LINK)" >> $GITHUB_STEP_SUMMARY
3636
"""
3737
# Additional jobs
38-
REGRESSION_HASH = "3fbe58a0ebe8fa5f97b7f36c45a2a69b1d3b6568"
38+
REGRESSION_HASH = "fc19ce3a7322a10ab791de755c950a56744a12e7"
3939
ALTINITY_JOBS = {
4040
"GrypeScan": r"""
4141
GrypeScanServer:

src/IO/S3/Client.cpp

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -703,19 +703,35 @@ Client::doRequest(RequestType & request, RequestFn request_fn) const
703703
continue;
704704
}
705705

706-
if (error.GetResponseCode() != Aws::Http::HttpResponseCode::MOVED_PERMANENTLY)
706+
/// IllegalLocationConstraintException may indicate that we are working with an opt-in region (e.g. me-south-1)
707+
/// In that case, we need to update the region and try again
708+
bool is_illegal_constraint_exception = error.GetExceptionName() == "IllegalLocationConstraintException";
709+
if (error.GetResponseCode() != Aws::Http::HttpResponseCode::MOVED_PERMANENTLY && !is_illegal_constraint_exception)
707710
return result;
708711

709712
// maybe we detect a correct region
710-
if (!detect_region)
713+
bool new_region_detected = false;
714+
if (!detect_region || is_illegal_constraint_exception)
711715
{
712716
if (auto region = GetErrorMarshaller()->ExtractRegion(error); !region.empty() && region != explicit_region)
713717
{
718+
LOG_INFO(log, "Detected new region: {}", region);
714719
request.overrideRegion(region);
715720
insertRegionOverride(bucket, region);
721+
new_region_detected = true;
716722
}
717723
}
718724

725+
/// special handling for opt-in regions
726+
if (new_region_detected && is_illegal_constraint_exception && initial_endpoint.substr(11) == "amazonaws.com")
727+
{
728+
S3::URI new_uri(initial_endpoint);
729+
new_uri.addRegionToURI(request.getRegionOverride());
730+
found_new_endpoint = true;
731+
request.overrideURI(new_uri);
732+
continue;
733+
}
734+
719735
// we possibly got new location, need to try with that one
720736
auto new_uri = getURIFromError(error);
721737
if (!new_uri)

src/Storages/System/StorageSystemTables.cpp

Lines changed: 28 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -607,18 +607,25 @@ class TablesBlockSource : public ISource
607607
if (columns_mask[src_index++])
608608
{
609609
bool inserted = false;
610-
// Extract from specific DataLake metadata if suitable
611-
if (auto * obj = dynamic_cast<StorageObjectStorageCluster *>(table.get()))
610+
try
612611
{
613-
if (auto * dl_meta = obj->getExternalMetadata(context))
612+
// Extract from specific DataLake metadata if suitable
613+
if (auto * obj = dynamic_cast<StorageObjectStorageCluster *>(table.get()))
614614
{
615-
if (auto p = dl_meta->partitionKey(context); p.has_value())
615+
if (auto * dl_meta = obj->getExternalMetadata(context))
616616
{
617-
res_columns[res_index++]->insert(*p);
618-
inserted = true;
617+
if (auto p = dl_meta->partitionKey(context); p.has_value())
618+
{
619+
res_columns[res_index++]->insert(*p);
620+
inserted = true;
621+
}
619622
}
620623
}
621-
624+
}
625+
catch (const Exception &)
626+
{
627+
/// Failed to get info from Iceberg. It's not critical, just log it.
628+
tryLogCurrentException("StorageSystemTables");
622629
}
623630

624631
if (!inserted)
@@ -634,18 +641,26 @@ class TablesBlockSource : public ISource
634641
{
635642
bool inserted = false;
636643

637-
// Extract from specific DataLake metadata if suitable
638-
if (auto * obj = dynamic_cast<StorageObjectStorageCluster *>(table.get()))
644+
try
639645
{
640-
if (auto * dl_meta = obj->getExternalMetadata(context))
646+
// Extract from specific DataLake metadata if suitable
647+
if (auto * obj = dynamic_cast<StorageObjectStorageCluster *>(table.get()))
641648
{
642-
if (auto p = dl_meta->sortingKey(context); p.has_value())
649+
if (auto * dl_meta = obj->getExternalMetadata(context))
643650
{
644-
res_columns[res_index++]->insert(*p);
645-
inserted = true;
651+
if (auto p = dl_meta->sortingKey(context); p.has_value())
652+
{
653+
res_columns[res_index++]->insert(*p);
654+
inserted = true;
655+
}
646656
}
647657
}
648658
}
659+
catch (const Exception &)
660+
{
661+
/// Failed to get info from Iceberg. It's not critical, just log it.
662+
tryLogCurrentException("StorageSystemTables");
663+
}
649664

650665
if (!inserted)
651666
{

0 commit comments

Comments
 (0)