From da6cab83d895559b814307f8cfbc0ecd47be0e6b Mon Sep 17 00:00:00 2001 From: ibrahim halatci Date: Fri, 25 Apr 2025 11:14:28 +0300 Subject: [PATCH 1/3] update workflow base OS to ubutu-latest (#7970) previous config was using ubuntu-20.04 which was end of support in GH --- .github/workflows/build_and_test.yml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index a6edefd72..010477c6d 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -39,7 +39,7 @@ jobs: run: echo 'noop' check-sql-snapshots: needs: params - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest container: image: ${{ needs.params.outputs.build_image_name }}:${{ needs.params.outputs.sql_snapshot_pg_version }}${{ needs.params.outputs.image_suffix }} options: --user root @@ -51,7 +51,7 @@ jobs: ci/check_sql_snapshots.sh check-style: needs: params - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest container: image: ${{ needs.params.outputs.style_checker_image_name }}:${{ needs.params.outputs.style_checker_tools_version }}${{ needs.params.outputs.image_suffix }} steps: @@ -109,7 +109,7 @@ jobs: - ${{ needs.params.outputs.pg15_version }} - ${{ needs.params.outputs.pg16_version }} - ${{ needs.params.outputs.pg17_version }} - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest container: image: "${{ matrix.image_name }}:${{ fromJson(matrix.pg_version).full }}${{ matrix.image_suffix }}" options: --user root @@ -217,7 +217,7 @@ jobs: pg_version: ${{ needs.params.outputs.pg17_version }} suite: regress image_name: ${{ needs.params.outputs.fail_test_image_name }} - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest container: image: "${{ matrix.image_name }}:${{ fromJson(matrix.pg_version).full }}${{ needs.params.outputs.image_suffix }}" options: --user root --dns=8.8.8.8 @@ -293,7 +293,7 @@ jobs: codecov_token: ${{ secrets.CODECOV_TOKEN }} test-pg-upgrade: name: PG${{ matrix.old_pg_major }}-PG${{ matrix.new_pg_major }} - check-pg-upgrade - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest container: image: "${{ needs.params.outputs.pgupgrade_image_name }}:${{ needs.params.outputs.upgrade_pg_versions }}${{ needs.params.outputs.image_suffix }}" options: --user root @@ -346,7 +346,7 @@ jobs: codecov_token: ${{ secrets.CODECOV_TOKEN }} test-citus-upgrade: name: PG${{ fromJson(needs.params.outputs.pg15_version).major }} - check-citus-upgrade - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest container: image: "${{ needs.params.outputs.citusupgrade_image_name }}:${{ fromJson(needs.params.outputs.pg15_version).full }}${{ needs.params.outputs.image_suffix_citus_upgrade }}" options: --user root @@ -395,7 +395,7 @@ jobs: if: always() env: CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }} - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest container: image: ${{ needs.params.outputs.test_image_name }}:${{ fromJson(needs.params.outputs.pg17_version).full }}${{ needs.params.outputs.image_suffix }} needs: @@ -417,7 +417,7 @@ jobs: ch_benchmark: name: CH Benchmark if: startsWith(github.ref, 'refs/heads/ch_benchmark/') - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest needs: - build steps: @@ -435,7 +435,7 @@ jobs: tpcc_benchmark: name: TPCC Benchmark if: startsWith(github.ref, 'refs/heads/tpcc_benchmark/') - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest needs: - build steps: @@ -454,7 +454,7 @@ jobs: name: Parallel 32 if: ${{ needs.test-flakyness-pre.outputs.tests != ''}} needs: test-flakyness-pre - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest outputs: json: ${{ steps.parallelization.outputs.json }} steps: @@ -466,7 +466,7 @@ jobs: test-flakyness-pre: name: Detect regression tests need to be ran if: ${{ !inputs.skip_test_flakyness }}} - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest needs: build outputs: tests: ${{ steps.detect-regression-tests.outputs.tests }} @@ -491,7 +491,7 @@ jobs: test-flakyness: if: false name: Test flakyness - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest container: image: ${{ needs.params.outputs.fail_test_image_name }}:${{ needs.params.outputs.pg17_version }}${{ needs.params.outputs.image_suffix }} options: --user root From 20a2d33f2a320918803e22599c5e3a72082f18be Mon Sep 17 00:00:00 2001 From: manaldush Date: Fri, 25 Apr 2025 14:29:47 +0300 Subject: [PATCH 2/3] AddressSanitizer: stack-use-after-scope on address in CreateBackground(backport to release-13.0) (#7966) Backport of #7943 to release-13.0 Fixes #7964 --- src/backend/distributed/metadata/metadata_utility.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/backend/distributed/metadata/metadata_utility.c b/src/backend/distributed/metadata/metadata_utility.c index b020f4603..d103b8ee9 100644 --- a/src/backend/distributed/metadata/metadata_utility.c +++ b/src/backend/distributed/metadata/metadata_utility.c @@ -2955,6 +2955,8 @@ CreateBackgroundJob(const char *jobType, const char *description) /* insert new job */ Datum values[Natts_pg_dist_background_job] = { 0 }; bool isnull[Natts_pg_dist_background_job] = { 0 }; + + NameData jobTypeName = { 0 }; memset(isnull, true, sizeof(isnull)); int64 jobId = GetNextBackgroundJobsJobId(); @@ -2967,7 +2969,6 @@ CreateBackgroundJob(const char *jobType, const char *description) if (jobType) { - NameData jobTypeName = { 0 }; namestrcpy(&jobTypeName, jobType); InitFieldValue(Anum_pg_dist_background_job_job_type, values, isnull, NameGetDatum(&jobTypeName)); From e940295202be6e9a84112fc03754843f087bb3d9 Mon Sep 17 00:00:00 2001 From: Maksim Melnikov Date: Fri, 18 Apr 2025 16:11:15 +0300 Subject: [PATCH 3/3] AddressSanitizer: stack-use-after-scope on distributed_planner.c --- src/backend/distributed/planner/distributed_planner.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/backend/distributed/planner/distributed_planner.c b/src/backend/distributed/planner/distributed_planner.c index 36da10e8c..6730ab982 100644 --- a/src/backend/distributed/planner/distributed_planner.c +++ b/src/backend/distributed/planner/distributed_planner.c @@ -2548,21 +2548,20 @@ HasUnresolvedExternParamsWalker(Node *expression, ParamListInfo boundParams) /* check whether parameter is available (and valid) */ if (boundParams && paramId > 0 && paramId <= boundParams->numParams) { - ParamExternData *externParam = NULL; + Oid paramType = InvalidOid; /* give hook a chance in case parameter is dynamic */ if (boundParams->paramFetch != NULL) { ParamExternData externParamPlaceholder; - externParam = (*boundParams->paramFetch)(boundParams, paramId, false, - &externParamPlaceholder); + paramType = (*boundParams->paramFetch)(boundParams, paramId, false, + &externParamPlaceholder)->ptype; } else { - externParam = &boundParams->params[paramId - 1]; + paramType = boundParams->params[paramId - 1].ptype; } - Oid paramType = externParam->ptype; if (OidIsValid(paramType)) { return false;