From 7beb9b41df5f1da7585e4f8c7be140781f440d03 Mon Sep 17 00:00:00 2001 From: mssonicbld <79238446+mssonicbld@users.noreply.github.com> Date: Sat, 9 Aug 2025 13:12:02 +0800 Subject: [PATCH 1/7] [build] Fix kdump build failure (Fixes 5097 17023) (#23648) #### Why I did it The build fails if kdump is enabled on the build host, even though the relevant build step is performed in a dockerized chroot. ``` + sudo LANG=C chroot ./fsroot-cisco-8000 kdump-config symlinks 5.10.0-23-2-amd64 Cannot change symbolic links when kdump is loaded ... failed! ``` Fixes #5097, Fixes #17023 ##### Work item tracking - Microsoft ADO **(number only)**: #### How I did it kdump installation checks if kdump is already running and aborts if so. This is good in most cases, but it's not relevant when installing into a chroot inside a docker container. This adds a basic patch to disable this check during build. Note that the kdump status of the build host is imported into the docker build container via the sysfs file system: ``` $ ls -id /sys/kernel/kexec_crash_loaded && cat /sys/kernel/kexec_crash_loaded 7824 /sys/kernel/kexec_crash_loaded 0 $ docker run --rm debian bash -c "ls -id /sys/kernel/kexec_crash_loaded && cat /sys/kernel/kexec_crash_loaded" 7824 /sys/kernel/kexec_crash_loaded 0 ``` The inodes and file content are identical inside and outside of the container. #### How to verify it 1. Enable kdump on the build host 2. Confirm baseline build fails with the "Cannot change symbolic links when kdump is loaded" error 3. Apply this change and build succeeds #### Which release branch to backport (provide reason below if selected) - [x] 202405 - [x] 202411 - [x] 202505 #### Tested branch (Please provide the tested image version) master (29752056ef87ace404d073901cba6179ab074a12) #### Description for the changelog [build] fix build failure on kdump-enabled hosts #### Link to config_db schema for YANG module changes #### A picture of a cute animal (not mandatory but encouraged) --- .../patch/0004-disable-kdump-load-check.patch | 16 ++++++++++++++++ src/kdump-tools/patch/series | 1 + 2 files changed, 17 insertions(+) create mode 100644 src/kdump-tools/patch/0004-disable-kdump-load-check.patch diff --git a/src/kdump-tools/patch/0004-disable-kdump-load-check.patch b/src/kdump-tools/patch/0004-disable-kdump-load-check.patch new file mode 100644 index 0000000000..24128d930b --- /dev/null +++ b/src/kdump-tools/patch/0004-disable-kdump-load-check.patch @@ -0,0 +1,16 @@ +diff --git a/debian/kdump-config.in b/debian/kdump-config.in +index ded079f..dcf2991 100755 +--- a/debian/kdump-config.in ++++ b/debian/kdump-config.in +@@ -487,11 +487,6 @@ kdump_create_symlinks() + { + kernel_version=$1 + +- if [ -e $sys_kexec_crash ] && [ "$(cat $sys_kexec_crash)" -eq 1 ] ; then +- log_failure_msg "Cannot change symbolic links when kdump is loaded" +- exit 1 +- fi +- + if [ -e "/boot/vmlinux-${kernel_version}" ] || [ -e "/boot/vmlinuz-${kernel_version}" ]; then + create_symlink vmlinuz "$kernel_version" + diff --git a/src/kdump-tools/patch/series b/src/kdump-tools/patch/series index 0af2c97602..369545368b 100644 --- a/src/kdump-tools/patch/series +++ b/src/kdump-tools/patch/series @@ -1,2 +1,3 @@ 0002-core-file-prefixed-by-kdump.patch 0003-Revert-the-MODULES-dep-optimization.patch +0004-disable-kdump-load-check.patch From 3ba0b9eef5130758c0044a9db93a70a5c27696bc Mon Sep 17 00:00:00 2001 From: mssonicbld <79238446+mssonicbld@users.noreply.github.com> Date: Wed, 20 Aug 2025 05:12:10 +0800 Subject: [PATCH 2/7] [build] Fix sonic-utilities-data submodule dep (#23758) #### Why I did it The `sonic-utilities-data_1.0-1_all.deb` target depends on sources from the `src/sonic-utilities` submodule. However, the cache dependency file does not list this submodule as a dependency. So, when the build cache is used, updates to the `src/sonic-utilities` submodule pointer do not trigger the necessary rebuild of `sonic-utilities-data_1.0-1_all.deb`, leading to a stale build output. ##### Work item tracking - Microsoft ADO **(number only)**: #### How I did it Updated `rules/sonic-utilities-data.dep` to include the proper `SMDEP` rules. #### How to verify it 1. Perform a build with the dpkg cache enabled 2. Confirm the new output file `target/debs/bookworm/sonic-utilities-data_1.0-1_all.deb.smdep` is created, containing the submodule dependencies (smdeps) 3. Archive the `target/debs/bookworm/sonic-utilities-data_1.0-1_all.deb` output outside the build workspace 4. Clean the build workspace 5. Update the `src/sonic-utilities` submodule pointer to a new commit that contains different source code 6. Perform another build with the dpkg cache enabled 7. Extract the previous and current `sonic-utilities-data_1.0-1_all.deb` outputs. Confirm that the contents of the debian packages are distinct and contain the expected source based on the respective `src/sonic-utilities` submodule pointers #### Which release branch to backport (provide reason below if selected) - [x] 202405 - [x] 202411 - [x] 202505 This is a build bug which silently results in incorrect build outputs when the dpkg cache is used. As such, it should be double committed. #### Tested branch (Please provide the tested image version) - [x] 202405 (6fad19aff0cf0cc2132db1de92c20d27e1daabe9) #### Description for the changelog Fix submodule build dependency for sonic-utilities-data #### Link to config_db schema for YANG module changes #### A picture of a cute animal (not mandatory but encouraged) --- rules/sonic-utilities-data.dep | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/rules/sonic-utilities-data.dep b/rules/sonic-utilities-data.dep index b11d0a5544..abcddfaf02 100644 --- a/rules/sonic-utilities-data.dep +++ b/rules/sonic-utilities-data.dep @@ -1,9 +1,10 @@ SPATH := $($(SONIC_UTILITIES_DATA)_SRC_PATH) DEP_FILES := $(SONIC_COMMON_FILES_LIST) rules/sonic-utilities-data.mk rules/sonic-utilities-data.dep DEP_FILES += $(SONIC_COMMON_BASE_FILES_LIST) -DEP_FILES += $(shell git ls-files $(SPATH)) +SMDEP_FILES := $(addprefix $(SPATH)/,$(shell cd $(SPATH) && git ls-files)) $(SONIC_UTILITIES_DATA)_CACHE_MODE := GIT_CONTENT_SHA $(SONIC_UTILITIES_DATA)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST) $(SONIC_UTILITIES_DATA)_DEP_FILES := $(DEP_FILES) - +$(SONIC_UTILITIES_DATA)_SMDEP_FILES := $(SMDEP_FILES) +$(SONIC_UTILITIES_DATA)_SMDEP_PATHS := $(SPATH) From 5907a19d31b803a2252b49ca3fa1196dd4dc9d38 Mon Sep 17 00:00:00 2001 From: Liu Shilong Date: Wed, 12 Nov 2025 17:05:28 +0800 Subject: [PATCH 3/7] [ci] Migrate agent pool from sonicbld-1es to sonicso1ES-amd64 (#24503) Why I did it Migrate agent pool and update j2 accordingly. * [ci] Migrate agent pool from sonicbld-1es to sonicso1ES-amd64 signed-off-by: jianquanye@microsoft.com --- .azure-pipelines/azure-pipelines-Official.yml | 2 +- .azure-pipelines/azure-pipelines-UpgrateVersion.yml | 2 +- .azure-pipelines/azure-pipelines-build.yml | 10 +++++----- .azure-pipelines/build-template.yml | 5 ++--- .azure-pipelines/docker-sonic-mgmt-py3-only.yml | 2 +- .azure-pipelines/docker-sonic-mgmt.yml | 2 +- .azure-pipelines/docker-sonic-slave-template.yml | 8 ++++---- .azure-pipelines/docker-sonic-slave.yml | 4 ++-- .azure-pipelines/dpkg-cache-cleanup.yml | 6 +++--- .azure-pipelines/official-build-cache.yml | 4 ++-- .azure-pipelines/official-build-vs-with-test.yml | 2 +- .azure-pipelines/official-build.yml | 2 +- .azure-pipelines/template-commonlib.yml | 4 ++-- Makefile.work | 2 +- azure-pipelines.yml | 8 ++++---- 15 files changed, 31 insertions(+), 32 deletions(-) diff --git a/.azure-pipelines/azure-pipelines-Official.yml b/.azure-pipelines/azure-pipelines-Official.yml index 56d88751f6..3a5f59dda8 100644 --- a/.azure-pipelines/azure-pipelines-Official.yml +++ b/.azure-pipelines/azure-pipelines-Official.yml @@ -14,7 +14,7 @@ schedules: - 202012 always: true -pool: sonicbld-1es +pool: sonicso1ES-amd64 stages: - stage: Build diff --git a/.azure-pipelines/azure-pipelines-UpgrateVersion.yml b/.azure-pipelines/azure-pipelines-UpgrateVersion.yml index b40a5d0333..81c13cb81e 100644 --- a/.azure-pipelines/azure-pipelines-UpgrateVersion.yml +++ b/.azure-pipelines/azure-pipelines-UpgrateVersion.yml @@ -26,7 +26,7 @@ resources: ref: master endpoint: sonic-net -pool: sonicbld-1es +pool: sonicso1ES-amd64 parameters: - name: 'jobFilters' diff --git a/.azure-pipelines/azure-pipelines-build.yml b/.azure-pipelines/azure-pipelines-build.yml index 941c30ecbe..5feecd12b7 100644 --- a/.azure-pipelines/azure-pipelines-build.yml +++ b/.azure-pipelines/azure-pipelines-build.yml @@ -72,7 +72,7 @@ jobs: - name: centec-arm64 ${{ if not(parameters.qemuOrCrossBuild) }}: - pool: sonicbld-arm64 + pool: sonicso1ES-arm64 timeoutInMinutes: 2880 variables: PLATFORM_ARCH: arm64 @@ -87,7 +87,7 @@ jobs: - name: marvell-armhf ${{ if not(parameters.qemuOrCrossBuild) }}: - pool: sonicbld-armhf + pool: sonicso1ES-armhf timeoutInMinutes: 2880 variables: PLATFORM_NAME: marvell @@ -95,7 +95,7 @@ jobs: - name: marvell-arm64 ${{ if not(parameters.qemuOrCrossBuild) }}: - pool: sonicbld-arm64 + pool: sonicso1ES-arm64 timeoutInMinutes: 2880 variables: PLATFORM_NAME: marvell @@ -117,12 +117,12 @@ jobs: platform_rpc: nephos - name: pensando - pool: sonicbld-arm64 + pool: sonicso1ES-arm64 variables: PLATFORM_ARCH: arm64 - name: nvidia-bluefield - pool: sonicbld-arm64 + pool: sonicso1ES-arm64 variables: PLATFORM_ARCH: arm64 diff --git a/.azure-pipelines/build-template.yml b/.azure-pipelines/build-template.yml index 813126792e..85d660f586 100644 --- a/.azure-pipelines/build-template.yml +++ b/.azure-pipelines/build-template.yml @@ -35,9 +35,8 @@ parameters: - name: pool type: string values: - - sonicbld-1es - - sonicbld_8c - default: sonicbld-1es + - sonicso1ES-amd64 + default: sonicso1ES-amd64 - name: dbg_image type: boolean diff --git a/.azure-pipelines/docker-sonic-mgmt-py3-only.yml b/.azure-pipelines/docker-sonic-mgmt-py3-only.yml index 8019e957fd..af913b300c 100644 --- a/.azure-pipelines/docker-sonic-mgmt-py3-only.yml +++ b/.azure-pipelines/docker-sonic-mgmt-py3-only.yml @@ -32,7 +32,7 @@ stages: - stage: Build jobs: - job: Build - pool: sonicbld-1es + pool: sonicso1ES-amd64 timeoutInMinutes: 360 steps: - template: cleanup.yml diff --git a/.azure-pipelines/docker-sonic-mgmt.yml b/.azure-pipelines/docker-sonic-mgmt.yml index 924e4230df..56c4034888 100644 --- a/.azure-pipelines/docker-sonic-mgmt.yml +++ b/.azure-pipelines/docker-sonic-mgmt.yml @@ -32,7 +32,7 @@ stages: - stage: Build jobs: - job: Build - pool: sonicbld-1es + pool: sonicso1ES-amd64 timeoutInMinutes: 360 steps: - template: cleanup.yml diff --git a/.azure-pipelines/docker-sonic-slave-template.yml b/.azure-pipelines/docker-sonic-slave-template.yml index 8bf7540e18..f47f5cddd9 100644 --- a/.azure-pipelines/docker-sonic-slave-template.yml +++ b/.azure-pipelines/docker-sonic-slave-template.yml @@ -29,11 +29,11 @@ parameters: default: sonicdev - name: pool type: string - default: sonicbld-1es + default: sonicso1ES-amd64 values: - - sonicbld-1es - - sonicbld-arm64 - - sonicbld-armhf + - sonicso1ES-amd64 + - sonicso1ES-arm64 + - sonicso1ES-armhf jobs: - job: sonic_slave_${{ parameters.dist }}${{ parameters.march }} diff --git a/.azure-pipelines/docker-sonic-slave.yml b/.azure-pipelines/docker-sonic-slave.yml index 9d8b30210a..ccad962df8 100644 --- a/.azure-pipelines/docker-sonic-slave.yml +++ b/.azure-pipelines/docker-sonic-slave.yml @@ -64,7 +64,7 @@ stages: - ${{ each arch in parameters.arches }}: - template: .azure-pipelines/docker-sonic-slave-template.yml@buildimage parameters: - pool: sonicbld-1es + pool: sonicso1ES-amd64 arch: ${{ arch }} dist: ${{ dist }} ${{ if ne(arch, 'amd64') }}: @@ -78,7 +78,7 @@ stages: - ${{ if ne(arch, 'amd64') }}: - template: .azure-pipelines/docker-sonic-slave-template.yml@buildimage parameters: - pool: sonicbld-${{ arch }} + pool: sonicso1ES-${{ arch }} arch: ${{ arch }} dist: ${{ dist }} march: _${{ arch }} diff --git a/.azure-pipelines/dpkg-cache-cleanup.yml b/.azure-pipelines/dpkg-cache-cleanup.yml index 7bac6997e4..ab1b7fa52a 100644 --- a/.azure-pipelines/dpkg-cache-cleanup.yml +++ b/.azure-pipelines/dpkg-cache-cleanup.yml @@ -16,7 +16,7 @@ pr: none jobs: - job: Amd - pool: sonicbld-1es + pool: sonicso1ES-amd64 timeoutInMinutes: 5 steps: - checkout: none @@ -26,7 +26,7 @@ jobs: df -h displayName: clean dpkg cache - job: Armhf - pool: sonicbld-armhf + pool: sonicso1ES-armhf timeoutInMinutes: 5 steps: - checkout: none @@ -36,7 +36,7 @@ jobs: df -h displayName: clean dpkg cache - job: Arm64 - pool: sonicbld-arm64 + pool: sonicso1ES-arm64 timeoutInMinutes: 5 steps: - checkout: none diff --git a/.azure-pipelines/official-build-cache.yml b/.azure-pipelines/official-build-cache.yml index 0f7b34e9bd..07b759a5f6 100644 --- a/.azure-pipelines/official-build-cache.yml +++ b/.azure-pipelines/official-build-cache.yml @@ -24,7 +24,7 @@ pr: none stages: - stage: Build - pool: sonicbld-1es + pool: sonicso1ES-amd64 variables: - name: CACHE_MODE value: cache @@ -46,7 +46,7 @@ stages: docker_syncd_rpc_image: yes platform_rpc: mlnx - name: marvell-armhf - pool: sonicbld-armhf + pool: sonicso1ES-armhf timeoutInMinutes: 1200 variables: PLATFORM_NAME: marvell diff --git a/.azure-pipelines/official-build-vs-with-test.yml b/.azure-pipelines/official-build-vs-with-test.yml index 7325efbc7e..1f35ba3086 100644 --- a/.azure-pipelines/official-build-vs-with-test.yml +++ b/.azure-pipelines/official-build-vs-with-test.yml @@ -51,7 +51,7 @@ variables: stages: - stage: BuildVS - pool: sonicbld-1es + pool: sonicso1ES-amd64 jobs: - template: azure-pipelines-build.yml parameters: diff --git a/.azure-pipelines/official-build.yml b/.azure-pipelines/official-build.yml index a228529b4a..86aef8fc09 100644 --- a/.azure-pipelines/official-build.yml +++ b/.azure-pipelines/official-build.yml @@ -34,7 +34,7 @@ variables: stages: - stage: Build - pool: sonicbld-1es + pool: sonicso1ES-amd64 variables: - group: Container-Registry - name: CACHE_MODE diff --git a/.azure-pipelines/template-commonlib.yml b/.azure-pipelines/template-commonlib.yml index c821998ae8..da31470d40 100644 --- a/.azure-pipelines/template-commonlib.yml +++ b/.azure-pipelines/template-commonlib.yml @@ -11,9 +11,9 @@ jobs: - job: Build_${{ arch }} timeoutInMinutes: 120 ${{ if eq(arch,'amd64') }}: - pool: sonicbld-1es + pool: sonicso1ES-amd64 ${{ else }}: - pool: sonicbld-${{ arch }} + pool: sonicso1ES-${{ arch }} variables: - template: template-variables.yml steps: diff --git a/Makefile.work b/Makefile.work index 0a9b46cecb..b0bcdfdb3c 100644 --- a/Makefile.work +++ b/Makefile.work @@ -91,7 +91,7 @@ $(error Add your user account to docker group and use your user account to make. endif # Check for j2cli availability -J2_VER := $(shell j2 --version 2>&1 | grep j2cli | awk '{printf $$2}') +J2_VER := $(shell j2 --version 2>&1 | grep j2 | awk '{printf $$2}') ifeq ($(J2_VER),) $(error Please install j2cli (sudo pip install j2cli)) endif diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 0bb002b019..1160689d84 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -51,7 +51,7 @@ variables: stages: - stage: BuildVS - pool: sonicbld-1es + pool: sonicso1ES-amd64 jobs: - template: .azure-pipelines/azure-pipelines-build.yml parameters: @@ -60,7 +60,7 @@ stages: - name: vs - stage: Build - pool: sonicbld-1es + pool: sonicso1ES-amd64 dependsOn: [] jobs: - template: .azure-pipelines/azure-pipelines-build.yml @@ -77,12 +77,12 @@ stages: docker_syncd_rpc_image: yes platform_rpc: mlnx - name: marvell-arm64 - pool: sonicbld-arm64 + pool: sonicso1ES-arm64 variables: PLATFORM_NAME: marvell PLATFORM_ARCH: arm64 - name: marvell-armhf - pool: sonicbld-armhf + pool: sonicso1ES-armhf timeoutInMinutes: 1200 variables: PLATFORM_NAME: marvell From 3d887183f63dc47fca8099e52bfe09918b045ed9 Mon Sep 17 00:00:00 2001 From: Liu Shilong Date: Thu, 13 Nov 2025 10:09:06 +0800 Subject: [PATCH 4/7] [build] Fix Too many open file error after roll back docker-ce (#24514) Why I did it Fix too many open file error when building image --- Makefile.work | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile.work b/Makefile.work index b0bcdfdb3c..f62d8288b9 100644 --- a/Makefile.work +++ b/Makefile.work @@ -307,6 +307,7 @@ DOCKER_RUN := docker run --rm=true --privileged --init \ -e "https_proxy=$(https_proxy)" \ -e "no_proxy=$(no_proxy)" \ -i$(shell { if [ -t 0 ]; then echo t; fi }) \ + --ulimit nofile=524288:524288 \ $(SONIC_BUILDER_EXTRA_CMDLINE) # Mount the $(DOCKER_ROOT) to /var/lib/docker in the slave container, the overlay fs is not supported as dockerd root folder. From 3b294420793d00a022b42526e52512852ab32479 Mon Sep 17 00:00:00 2001 From: mssonicbld <79238446+mssonicbld@users.noreply.github.com> Date: Wed, 19 Nov 2025 17:12:31 +0800 Subject: [PATCH 5/7] [submodule] Update submodule sonic-dash-api to the latest HEAD automatically (#24571) #### Why I did it src/sonic-dash-api ``` * 3f67090 - (HEAD -> 202405, origin/202405) Automated agent pool migration for branch 202405 (#49) (35 minutes ago) [yijingyan2] ``` #### How I did it #### How to verify it #### Description for the changelog --- src/sonic-dash-api | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-dash-api b/src/sonic-dash-api index 1fd0b7dbd0..3f6709001e 160000 --- a/src/sonic-dash-api +++ b/src/sonic-dash-api @@ -1 +1 @@ -Subproject commit 1fd0b7dbd02f143dfa8c6dcc850514ca70628c3f +Subproject commit 3f6709001e8574743ecf1a44f4cc3eb26b6329d6 From 39017792fa7e636416d3281c2dc3a5a9a8f2c199 Mon Sep 17 00:00:00 2001 From: mssonicbld <79238446+mssonicbld@users.noreply.github.com> Date: Tue, 2 Dec 2025 16:12:57 +0800 Subject: [PATCH 6/7] [submodule] Update submodule sonic-swss-common to the latest HEAD automatically (#24670) #### Why I did it src/sonic-swss-common ``` * 36f40a1 - (HEAD -> 202405, origin/202405) Automated agent pool migration for branch 202405 (#1107) (21 hours ago) [yijingyan2] ``` #### How I did it #### How to verify it #### Description for the changelog --- src/sonic-swss-common | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-swss-common b/src/sonic-swss-common index 39f31e2fa1..36f40a1bae 160000 --- a/src/sonic-swss-common +++ b/src/sonic-swss-common @@ -1 +1 @@ -Subproject commit 39f31e2fa1dff43542b88e7f4308ddad0a0a6b32 +Subproject commit 36f40a1bae12a4ff28314eaa8223a6fe1b636492 From fecd4ec81475cddba537cdb1e22938b08adaf570 Mon Sep 17 00:00:00 2001 From: mssonicbld <79238446+mssonicbld@users.noreply.github.com> Date: Thu, 29 Jan 2026 17:13:12 +0800 Subject: [PATCH 7/7] [submodule] Update submodule sonic-linux-kernel to the latest HEAD automatically (#25238) #### Why I did it src/sonic-linux-kernel ``` * feaf559 - (HEAD -> 202405, origin/202405) [202405] PCIe AER printk ratelimiting backport (#529) (29 hours ago) [kenneth-arista] * 0c948bf - Automated agent pool migration for branch 202405 (#518) (8 days ago) [yijingyan2] ``` #### How I did it #### How to verify it #### Description for the changelog --- src/sonic-linux-kernel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-linux-kernel b/src/sonic-linux-kernel index d10d26cd64..feaf559f38 160000 --- a/src/sonic-linux-kernel +++ b/src/sonic-linux-kernel @@ -1 +1 @@ -Subproject commit d10d26cd640cd0bbc313a2506c1e5382c8712c0d +Subproject commit feaf559f38133c9fa649a468c5e589641c77de76