Skip to content

Prepare build for 1.0.49 release - #407

Merged
Zhidong Peng (ZhidongPeng) merged 22 commits into
mainfrom
update
Sep 10, 2026
Merged

Prepare build for 1.0.49 release#407
Zhidong Peng (ZhidongPeng) merged 22 commits into
mainfrom
update

Conversation

@ZhidongPeng

Copy link
Copy Markdown
Collaborator

No description provided.

* Add Azure Linux 4 E2E test coverage

* fix spell

---------

Co-authored-by: Zhidong Peng <zpeng@micrsoft.com>
…386)

* read and deserialize json file support all encoding types regarding UTF-8, UTF-16, UTF-32, BOM, LE/BE

* spell fixes

* spelling fixes

* ut test update

* review comments

* unit test

---------

Co-authored-by: Zhidong Peng <zpeng@microsoft.com>
* Add timeout for write_serial_console_log function.

* pin rust version in linux_lint and windows_lint jobs

* fix cargo audit at pin rust version

---------

Co-authored-by: Zhidong Peng <zpeng@micrsoft.com>
* Linux GPA to support IPv6 dual-stack address

* Windows GPA to support IPv6 dual-stack address

* add comments to windows authorize_connect6

* update md file

* add IPv4-mapped IPv6 ping test

* accept the comments

* Update E2E test script

---------

Co-authored-by: Zhidong Peng <zpeng@micrsoft.com>
Co-authored-by: Zhidong Peng <zpeng@micrsoft.com>
Co-authored-by: Zhidong Peng <zpeng@microsoft.com>
Bumps the github-actions group with 9 updates:

| Package | From | To |
| --- | --- | --- |
| [actions/checkout](https://github.com/actions/checkout) | `3.3.0` | `7.0.1` |
| [actions/upload-artifact](https://github.com/actions/upload-artifact) | `4.6.2` | `7.0.1` |
| [egor-tensin/setup-clang](https://github.com/egor-tensin/setup-clang) | `1.4` | `2.3` |
| [github/codeql-action/init](https://github.com/github/codeql-action) | `3.37.9` | `4.37.8` |
| [github/codeql-action/analyze](https://github.com/github/codeql-action) | `3.37.9` | `4.37.8` |
| [microsoft/setup-msbuild](https://github.com/microsoft/setup-msbuild) | `1.3.1` | `3.0.0` |
| [actions-rs/toolchain](https://github.com/actions-rs/toolchain) | `1.0.6` | `1.0.7` |
| [joutvhu/get-release](https://github.com/joutvhu/get-release) | `1.0.2` | `1.0.4` |
| [streetsidesoftware/cspell-action](https://github.com/streetsidesoftware/cspell-action) | `8.4.0` | `9.0.1` |


Updates `actions/checkout` from 3.3.0 to 7.0.1
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v3.3.0...3d3c42e)

Updates `actions/upload-artifact` from 4.6.2 to 7.0.1
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](actions/upload-artifact@ea165f8...043fb46)

Updates `egor-tensin/setup-clang` from 1.4 to 2.3
- [Release notes](https://github.com/egor-tensin/setup-clang/releases)
- [Changelog](https://github.com/egor-tensin/setup-clang/blob/master/CHANGELOG.md)
- [Commits](egor-tensin/setup-clang@ef434b4...23bc15c)

Updates `github/codeql-action/init` from 3.37.9 to 4.37.8
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@6f5948d...db488dd)

Updates `github/codeql-action/analyze` from 3.37.9 to 4.37.8
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@6f5948d...db488dd)

Updates `microsoft/setup-msbuild` from 1.3.1 to 3.0.0
- [Release notes](https://github.com/microsoft/setup-msbuild/releases)
- [Commits](microsoft/setup-msbuild@1ff5705...30375c6)

Updates `actions-rs/toolchain` from 1.0.6 to 1.0.7
- [Release notes](https://github.com/actions-rs/toolchain/releases)
- [Changelog](https://github.com/actions-rs/toolchain/blob/master/CHANGELOG.md)
- [Commits](actions-rs/toolchain@b2417cd...16499b5)

Updates `joutvhu/get-release` from 1.0.2 to 1.0.4
- [Release notes](https://github.com/joutvhu/get-release/releases)
- [Commits](joutvhu/get-release@1446292...8c3531b)

Updates `streetsidesoftware/cspell-action` from 8.4.0 to 9.0.1
- [Release notes](https://github.com/streetsidesoftware/cspell-action/releases)
- [Changelog](https://github.com/streetsidesoftware/cspell-action/blob/main/CHANGELOG.md)
- [Commits](streetsidesoftware/cspell-action@de2a73e...e0668cf)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 7.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: actions/upload-artifact
  dependency-version: 7.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: egor-tensin/setup-clang
  dependency-version: '2.3'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: github/codeql-action/init
  dependency-version: 4.37.8
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: github/codeql-action/analyze
  dependency-version: 4.37.8
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: microsoft/setup-msbuild
  dependency-version: 3.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: actions-rs/toolchain
  dependency-version: 1.0.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
- dependency-name: joutvhu/get-release
  dependency-version: 1.0.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
- dependency-name: streetsidesoftware/cspell-action
  dependency-version: 9.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
#398)

* Donot error out if authorize_connect6 not found in legacy eBPF program

* resolve review comment from Copilot
Bumps the github-actions group with 2 updates: [github/codeql-action/init](https://github.com/github/codeql-action) and [github/codeql-action/analyze](https://github.com/github/codeql-action).


Updates `github/codeql-action/init` from 4.37.8 to 4.37.9
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@db488dd...cdf488f)

Updates `github/codeql-action/analyze` from 4.37.8 to 4.37.9
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@db488dd...cdf488f)

---
updated-dependencies:
- dependency-name: github/codeql-action/init
  dependency-version: 4.37.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
- dependency-name: github/codeql-action/analyze
  dependency-version: 4.37.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
#396)

* Report eBPFSvc, GuestProxyAgent service status, and surface eBPF/GPA errors immediately

- Add eBPFSvc as a required member of the eBPF substatus alongside EbpfCore and
  NetEbpfExt (Windows only); the substatus is now Success only when all three
  services are Running.
- Decouple eBPF and GuestProxyAgent service runtime-status checks onto their own
  ~2-minute polling cadence (SERVICE_STATUS_POLL_INTERVAL_SECS), independent of
  the 15s aggregate-status loop, while still refreshing the status file every
  15s from cached results.
- Add a new cross-platform ProxyAgentServiceStatus substatus reporting the
  GuestProxyAgent service's own runtime status, via a new
  proxy_agent_shared::service::check_service_run_status abstraction backed by
  the Windows SCM and by systemctl on Linux.
- Immediately override the top-level extension status/message (bypassing the
  existing debounce state machine) whenever the eBPF substatus (Windows) or the
  GuestProxyAgent service substatus (both platforms) reports Error, including
  the last known status timestamp and current time, so operators see the real
  root cause instead of a generic stale-status message.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Address code review: avoid false-positive overrides during transient service states

- Add Running/Transitioning/Down state classification (new ServiceRuntimeStatus.is_transitioning field, new classify_service_state helper on Windows, updated Linux map_is_active_output) instead of treating any non-Running state as a confirmed failure. Windows StartPending/ContinuePending and Linux systemd �ctivating are now classified as Transitioning rather than Error, so a service that is simply still starting up (e.g. during boot or an extension-triggered restart) no longer immediately flips the top-level extension status to Error.
- build_ebpf_substatus and build_proxy_agent_service_substatus now report the existing TRANSITIONING_STATUS instead of ERROR_STATUS for these benign transitional states, so apply_ebpf_status_override/apply_gpa_service_status_override (unchanged) naturally do not fire on them.
- Add should_force_recompute and wire it into monitor_thread so the cached eBPF/GPA-service substatus is recomputed immediately whenever the aggregate-status success/failure result changes, instead of waiting out the full ~2-minute poll interval. This prevents a stale cached Error substatus from continuing to override a just-recovered aggregate status (and vice versa for a newly-broken service) for up to 2 minutes.
- Add/extend unit tests for the new classification logic on both platforms, the Transitioning branch of both substatus builders, regression tests confirming Transitioning does not trigger either override, a test for should_force_recompute, and a backfilled test for compute_gpa_service_substatus (introduced in the previous commit without dedicated coverage).

* Simplify eBPF/GPA-service status checks to poll every loop tick

- Revert the decoupled ~2-minute polling cadence and the force-recompute-on-transition logic for the eBPF/GuestProxyAgent-service substatus checks, per manual VM testing feedback: a 2-minute-stale cache was deemed acceptable, and the added complexity to make it 'immediate' was not worth it. compute_ebpf_substatus()/compute_gpa_service_substatus() are now called fresh on every regular monitor_thread loop tick (currently 15s), same as the rest of the loop, so the status file always reflects current machine state at the cost of querying the SCM/systemctl more frequently.
- Removed should_poll, should_force_recompute, and the SERVICE_STATUS_POLL_INTERVAL_SECS constant, along with their now-orphaned unit tests.
- Refactored the override call site for readability: replaced the boolean-juggling + duplicated per-platform declarations with a single new apply_service_health_overrides helper (Windows-only) that encapsulates the eBPF-wins-priority ordering; non-Windows now calls apply_gpa_service_status_override directly. Added test_apply_service_health_overrides_priority covering all three priority outcomes.
- Kept the Running/Transitioning/Down state classification (is_transitioning, classify_service_state, TRANSITIONING_STATUS branches) from the prior code-review fix, since it addresses a separate, still-valid concern (avoiding false-positive Error while a service is merely mid-boot/mid-restart) unrelated to polling cadence.

* Address maintainer review feedback and simplify service-health status code

- Consolidate apply_ebpf_status_override and apply_gpa_service_status_override, which were
  identical apart from which SubStatus they read, into one apply_sub_status_override_in_error
  function used by both call sites (per review feedback: 'apply_gpa_service_status_override is
  the same as apply_ebpf_status_override... suggest keeping one').
- Replace map_is_active_output's (bool, bool, String) tuple return with a named ActiveState
  struct, so each field is self-documenting at call sites (per review feedback: 'you are going
  to kill me with this 3 (bool, bool, string), it is hard to maintain').
- Extract a shared combined_service_health helper encapsulating the Success/Error/Transitioning
  decision rule that build_ebpf_substatus (3 services) and build_proxy_agent_service_substatus
  (1 service) had each implemented separately, removing ~35 duplicated lines and centralizing
  the rule in one tested place.
- Simplify query_service_run_status to delegate to the pre-existing check_service_status
  function instead of re-implementing the same SCM query_service_status/query_service_config
  lookup a second time, removing ~20 duplicated lines.
- Add test_combined_service_health and update existing tests for the ActiveState struct.

* Shorten overly long comments to 2-3 lines

Comment-only change: trimmed 12 doc/inline comment blocks (ranging 4-14 lines) that were
added in the preceding commits down to 2-3 lines each, keeping only the essential what/why.
No code or logic was changed.

* Address code review: use pub-use re-export pattern for check_service_run_status

Renamed windows_service::query_service_run_status to check_service_run_status so both platforms expose the same name, then replaced the hand-written cross-platform dispatcher in service.rs with two cfg-gated pub-use lines, matching the existing re-export pattern used for classify_service_state/set_default_failure_actions/ServiceState/ServiceStatusInfo.

---------

Co-authored-by: Srikrishna Veturi <sveturi@microsoft.com>
* Make add connection summary as background operations.

* Do not redact the secrets in the command line at proxying time

* fix tyop

---------

Co-authored-by: Zhidong Peng <zpeng@micrsoft.com>
…ver has not started yet. (#404)

Co-authored-by: Zhidong Peng <zpeng@micrsoft.com>
* Set tokio runtime worker threads between 2 and 10 instead default to number of cpus

* Update start_message

* update tokio runtime worker between 1 and 4.

* start proxy_server on delicated tokio runtime.

* fix build

---------

Co-authored-by: Zhidong Peng <zpeng@micrsoft.com>
@ZhidongPeng
Zhidong Peng (ZhidongPeng) merged commit 093a3d5 into main Sep 10, 2026
24 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants