Repository navigation
Sync main branch and feature/openvmm - #42216
Merged
Ben Hillis (benhillis) merged 278 commits intoNov 10, 2026
Merged
Ben Hillis (benhillis) merged 278 commits into
Ben Hillis (benhillis) merged 278 commits into
Conversation
This is a follow up to PR #41512 Remove the redundant restore cgroup namespace code. Simplify the cgroup check logic by moving the retry inside the debug shell. Add a new systemd boot timeout test.
…disk's block device in WSL (#41686)
…41689) * Impersonate the caller before making various filesystem operations * Apply PR feedback
* stdin flag * add winrt test, fix coroutine bug in streams
* Use the latest ESRP signing key code * Only change key code * Restore original pipeline line endings Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]>
…ot-forwarded-when-both-v4-and-v6-are-listened Fix ipv4 forwarding when both v4 and v6 ports are listening
* Use WSL icon for developer docs Co-authored-by: Copilot <[email protected]> Copilot-Session: ce78a21f-e946-4e9c-b2ea-934a5b0935f3 * Reuse docs logo as favicon Co-authored-by: Copilot <[email protected]> Copilot-Session: ce78a21f-e946-4e9c-b2ea-934a5b0935f3 --------- Co-authored-by: Ben Hillis <[email protected]> Copilot-Session: ce78a21f-e946-4e9c-b2ea-934a5b0935f3
For a newly installed distro, the drvfs are initially mount as 0:0. And is not updated after oobe sets the default uid. This could cause access issues before the distro is restarted. This PR updates the auto mounted drvfs gid uid before completing the oobe. The non-auto mounted shares are not remounted to avoid breaking user set gid uid values.
* Update WSLC SDK API documentation Co-authored-by: Copilot <[email protected]> * Update docs * Update docs * Quick fixes --------- Co-authored-by: Copilot <[email protected]> Co-authored-by: Craig Loewen <[email protected]>
* Expose kernel headers and perf to distributions Mount kernel-matched headers and perf tooling from the artifacts VHD into each distribution, expose perf through the default environment, and cover the resulting paths and replacement behavior. Co-authored-by: Copilot <[email protected]> Copilot-Session: cdebc331-ad3e-492e-9591-c25587c859c5 * Address kernel artifact review feedback Correct the documented header target and directory fallback, and log failures while removing mount path environment variables. Co-authored-by: Copilot <[email protected]> Copilot-Session: cdebc331-ad3e-492e-9591-c25587c859c5 --------- Co-authored-by: Ben Hillis <[email protected]> Copilot-Session: cdebc331-ad3e-492e-9591-c25587c859c5
* Use iterators in FromJson to avoid copies * Cleanup * Fix template build * Format
* Refine sparse VHD creation policy Co-authored-by: Copilot <[email protected]> * Enable experimental sparse VHD creation in WSL Co-authored-by: Copilot <[email protected]> * Make sparse VHD unsafe flag optional Co-authored-by: Copilot <[email protected]> * Keep fixed VHD creation non-sparse Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Ben Hillis <[email protected]> Co-authored-by: Copilot <[email protected]>
…2.7391 (#41730) Co-authored-by: Ben Hillis <[email protected]>
…l disks (#41678) * Update the DACL to only allow access to the user when creating virtual disks * Save state * Increase test coverage * Fix test * Apply PR feedback * Apply PR feedback * Format * Apply PR suggestions * Apply PR suggestions
…42161) * Add container network connect/disconnect to WSLC SDK Co-authored-by: Copilot <[email protected]> * Add ping check to SDK network connect test and share RunScriptOnNetwork helper Co-authored-by: Copilot <[email protected]> * Test SDK network disconnect before container start Co-authored-by: Copilot <[email protected]> * Clarify WslcContainerNetwork name also accepts network ID or prefix Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]>
… default mirrored mode (#42163) Problem: Policy-selected mirrored networking incorrectly fell back to NAT with a misleading Windows-version warning. Firewall normalization ran before policy selection, leaving the required firewall disabled when firewall=false. Fix: Enable mirrored mode’s required firewall after policy selection.
Problem: wsl --list --running --verbose included stopped distributions because the running-only filter was applied only in the nonverbose branch. Fix: Moved filtering and empty-result handling before output formatting, with regression coverage for both verbose flag forms.
Co-authored-by: WSL localization <[email protected]>
…support earlier (#42178) Co-authored-by: Copilot <[email protected]>
Fixes two use-after-free issues in WSL Settings: Configuration reload: Cached settings referenced native strings freed during reload. Managed settings now own independent copies. String disposal: Cleanup read the string pointer after freeing its containing structure. The string is now freed before the structure.
Problem: Consomme refreshed DNS settings only at startup or on connectivity changes, leaving the guest DNS search list stale after Windows suffix-only changes. Fix: Add a DNS-suffix registry watcher, serialize refreshes, and cancel GNS communications before draining callbacks during teardown. Note: This PR also piggy backs the comment change requested in #42163
* Add Rust client for the OpenVMM VM service (#41618) * repo: modify CODEOWNERS to change wsl-maintainers to wsl-reviewers team (#41617) Co-authored-by: Ben Hillis <[email protected]> * Localization change from build: 157736413 (#41621) Co-authored-by: WSL localization <[email protected]> * Migrate wslvmservice to WSL * tests + address missing functionality from initial poc * Retry OpenVMM named-pipe connections during startup * Use AF_UNIX for OpenVMM RPC connections * Add more robust RPC handling + tests * add tracing * Revert RPC robustness and tracing changes Reverts 260080d (add tracing) and ff9c777 (Add more robust RPC handling + tests), restoring the RPC layer to eb59238. Co-authored-by: Copilot <[email protected]> * Restore RPC robustness and tracing changes Reverts ea86585 to restore the original RPC handling, tests, and tracing. Co-authored-by: Copilot <[email protected]> * re-do tests * Update packaging * undo unnecessary change * CMake simplify, address copilot comments, run formatter, and make ci changes * feedback * Remove unintended localization changes Restore localized resources to their feature/openvmm versions so they are not included in the OpenVMM RPC change. Co-authored-by: Copilot <[email protected]> * use nuget instead * missed a couple of updates * . * Stop tracking local OpenVMM notes Co-authored-by: Copilot <[email protected]> * last set of reverted changes --------- Co-authored-by: Ben Hillis <[email protected]> Co-authored-by: Ben Hillis <[email protected]> Co-authored-by: Blue <[email protected]> Co-authored-by: WSL localization <[email protected]> Co-authored-by: Copilot <[email protected]> * Introduce virtual machine backend interface (#41663) * Initial work * . * flatten * previous PR feedback * Update cleanup logic in OpenVmmVirtualMachineBackend Replaced file deletion with recursive directory removal for improved error handling. Co-authored-by: Copilot Autofix powered by AI <[email protected]> * Initial work * previous PR feedback * feedback * Remove accidentally committed file * . --------- Co-authored-by: Copilot Autofix powered by AI <[email protected]> * Implement OpenVMM backend (#41697) * Implement OpenVMM virtual machine backend Co-authored-by: Copilot <[email protected]> * . * fix * feedback * feedback --------- Co-authored-by: Copilot <[email protected]> * Introduce HcsVirtualMachineBackend (#41718) * Initial work * . * flatten * previous PR feedback * Update cleanup logic in OpenVmmVirtualMachineBackend Replaced file deletion with recursive directory removal for improved error handling. Co-authored-by: Copilot Autofix powered by AI <[email protected]> * logging improvements + use wsl error codes where applicable + tests * Configure OpenVMM networking at VM creation time Expose effective VM descriptions and reject unsupported network configuration and adapter hot-add. Update backend coverage for creation-time networking. * Refactor + fix locking story * add user token * Partially implemented HcsVirtualMachineBackend * Implement OpenVMM virtual machine backend Co-authored-by: Copilot <[email protected]> * . * fix * feedback * Relocate virtual machine backends to common Co-authored-by: Copilot <[email protected]> * restore * 2a03975 * 7c9c0db * finally rebased * . * HcsAttachDisk * HcsDetachDisk * tests * test fixes * missed some things during merge * Feedback * Address HCS backend review feedback Co-authored-by: Copilot <[email protected]> * feedback --------- Co-authored-by: Copilot Autofix powered by AI <[email protected]> Co-authored-by: Copilot <[email protected]> * Implement remaining HCS VirtualMachineBackend surface (#41761) * . * . * . * Add filesystem share test * Fix rebased filesystem share validation * Remove file share * initial work * GPU/PMem * guest DMA/swiotb, memory configuration, HCS hosted p9 support, shared memory device * Fix VM backend and WinRT unity build collisions Port the shared VM constants and explicit WinRT imports from hcs-integration commits 3d53df3 and 1cee239. Co-authored-by: Copilot <[email protected]> Copilot-Session: 563f9b88-0149-48a5-ac0c-07d6f0adbd9e * streamline comments * Revert streamline comments * feedback * feedback * . * Align VM termination with existing code * feedback --------- Copilot-Session: 563f9b88-0149-48a5-ac0c-07d6f0adbd9e * Integrate HcsVirtualMachineBackend into WslCoreVm (#41824) * . * . * . * Add filesystem share test * Fix rebased filesystem share validation * Remove file share * initial work * GPU/PMem * guest DMA/swiotb, memory configuration, HCS hosted p9 support, shared memory device * Fix VM backend and WinRT unity build collisions Port the shared VM constants and explicit WinRT imports from hcs-integration commits 3d53df3 and 1cee239. Co-authored-by: Copilot <[email protected]> Copilot-Session: 563f9b88-0149-48a5-ac0c-07d6f0adbd9e * streamline comments * Revert streamline comments * feedback * feedback * . * Align VM termination with existing code * test new rs_prerelease image * formatter * Integrate HCS virtual machine backend (cherry picked from commit 5207c4c) * updates (cherry picked from commit 21bab9c) * formatter (cherry picked from commit 5a6f3e1) * Merge user/damanmulye/hcs-fs-devices into user/damanmulye/hcs-integration (cherry picked from commit 721cc2b) * Remove duplicate state (cherry picked from commit 32e8ca1) * More duplicate state removal (cherry picked from commit a43e9e0) * test fixes (cherry picked from commit eaaa885) * Fix leak for wsldevicehostproxy (cherry picked from commit 49ba11e) * Fix merge inconsistencies in the VM backend integration Reconcile HcsVirtualMachineBackend with the current nested VmResource model and the termination-information interface: - Access inherited resource descriptions directly and backend-only state through .Backend. - Drop the duplicate VmFileSystemShare description from HcsFileSystemShare, which VmResource already provides. - Resolve shared-handle versus raw HANDLE conversions for file system device and share tokens. - Store port bindings as VmPortBinding and read the network adapter resource path from backend state. - Restore the SmallPageMemory feature and its HCS capability detection. - Move WslCoreVm off the obsolete crash/exit APIs to GetTerminationReason(). * recover fixes * . * . * . * Format HCS virtual machine backend * Only pass a user token for HCS-hosted Plan 9 shares that request root identity Passing the token unconditionally implicitly set UseShareRootIdentity on GPU shares, changing their flags from ReadOnly|AllowOptions (0x21) to 0x31 and causing the guest /gpu_drivers mount to fail with EINVAL during distro import. * . * feedback * termination feedback * . * feedback --------- Copilot-Session: 563f9b88-0149-48a5-ac0c-07d6f0adbd9e * Merge latest main branch into feature/openvmm (#41952) * repo: modify CODEOWNERS to change wsl-maintainers to wsl-reviewers team (#41617) Co-authored-by: Ben Hillis <[email protected]> * Localization change from build: 157736413 (#41621) Co-authored-by: WSL localization <[email protected]> * CLI: Global option scopes for nested commands (related to compose support) (#41546) * Change default relay buffer size to 64KiB (#41603) The current logic uses a fixed 4KiB buffer for stdio relay on the Windows side. And uses an initial 4KiB buffer for stdio relay on the Linux side, which grows only if the message won't fit. This can severely limit the relay performance in some situations. For example, in #41572, when redirecting stdout to a SMB share. This PR increases thedefault relay buffer size to 64KiB. Which shows significant performance improvements according to buffer size tests. * Fix redirect stdout and stderror to the same file overlapping (#41611) Currently the stdout and stderr relay tracks the output offset separately. And when redirected to the same file, the writes could overlap. This PR uses the append mode for overlap io writes instead of the separate offsets in the relay. So, the file write offset is correctly tracked by the system. * move installer log collection after repro (#41620) The installer log files were collected before the log collection starts. Which will miss the user repro. This PR moves it after the user repro. * wslc: add --digests to image list for docker parity (#41457) Co-authored-by: Copilot <[email protected]> * Localization change from build: 157843092 (#41630) Co-authored-by: WSL localization <[email protected]> * Explicitely return SOCKET from WSLCPluginAPI_ProcessGetFd() (#41626) * In mirrored mode, handle route update as add instead of replace (#41391) In mirrored mode, handle route update as add instead of replace Remove usage of route update as it can overwrite routes on other interfaces. add tests that verify host routing changes are correctly reflected in Linux --------- Co-authored-by: Catalin-Emil Fetoiu <[email protected]> * Add wslc events command (#41608) * Don't fail the UnitTests::Warnings test case if GlobalSecureAccess VPN is running (#41638) * Don't fail the UnitTests::Warnings test case if GlobalSecureAccess VPN is running * Cleanup diff * Fix test * Wait for wslservice to be started when running tests (#41639) * Wait for wslservice to be started when running tests * Fail on timeout * Improve check * Format * Create new namespaces for distro cgroups (#41512) In 2.9.8, the distro processes are separated into their own cgroups. But they remain in the same cgroup namespace. That caused compatibility issues with softwares that assume a fixed systemd cgroup layout. For example, rootless docker and nerdctl. Fixes on Moby and nertctl are being worked on. However, to avoid issues with other software, WSL's cgroup handling should also be improved. This PR creates new cgroup namespaces for the distros. So, to the non-critical distro processes, the systemd cgroup layout stays the same as before. This PR also introduces a cgroup structure change to accomplish this. The systemd init is moved from wsl-user/distro-N/systemd to wsl-user/distro-N. And the initialization of the distro-N controllers is handled by systemd instead. The processes are also moved into the non-systemd cgroup in systemdless distros. This makes sure that sub-group controllers can be enabled in the distro root. Cgroup v2 is now enforced when distro isolation is enabled. Instead of constructing an unusable cgroup v1 layout when cgroup v1 and distro isolation are both enabled. * Fix unnecessary delay in the port tracking loop (#41472) Before this change, an additional 10ms delay was added in the port tracker loop presumably to make the main loop slower than the worker loop. So, the worker result does not get super dated. This is not reliable. And the 10ms delay also slows down every consecutive bind call. This PR refactors the thread synchronization method. So, the timing between those two loops is more deterministic. And removes the performance penalty for all bind calls. * Localization change from build: 157954210 (#41643) Co-authored-by: WSL localization <[email protected]> * wslc: add --follow-link to cp (#41501) Co-authored-by: Copilot <[email protected]> * Disable unstable bind cap test and re-enable Loopback test that was incorrectly disabled- #41648 (#41648) Co-authored-by: Catalin-Emil Fetoiu <[email protected]> * Move objects shared by wslc.exe and the tests to src/windows/common (#41619) * Move objects shared by wslc.exe and the tests to src/windows/common Co-authored-by: Copilot <[email protected]> * Link yaml-cpp, advapi32 and Crypt32 into common Co-authored-by: Copilot <[email protected]> * Drop yaml-cpp, advapi32 and crypt32 from wslclib now that common provides them Co-authored-by: Copilot <[email protected]> * Move wslc code in common under common/wslc and namespace CLI types as wslc::cli Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> * Fix various protocol parsing issues (#41637) * Save state * Use proper arrays * Format * Add new tests * Cleanup tests * Cleanup diff * Format * Apply PR feedback * Apply PR feedback * Format * Apply PR feedback * Move logging call * Apply PR feedback * Apply PR feedback * Localization change from build: 157980831 (#41647) Co-authored-by: WSL localization <[email protected]> * Add WSLC network lifecycle events (#41576) * Add WSLC network lifecycle events * Localize pending network prune errors * Fix network operation wait ownership and cleanup ordering * Fix prune event correlation after timed-out * Fix network event rollback and timeout recovery * Format * Forward Docker network events directly * Restore lock_guard after removing event waits * fix test * align event stream test helpers after merge * feedback * Fix potential out of bound access when pretty-printing string field in init messages (#41664) * Localization change from build: 158197536 (#41662) Co-authored-by: WSL localization <[email protected]> * simplify event reader cleanup and remove unused include (#41667) * Fix ipv4 forwarding when both v4 and v6 ports are listening * Fix config's handling of non-ascii characters (#41657) When parsing the config file, non-ascii utf-16 values are casted into char. This will mangle non-ascii values in the config file. For example, a custom kernel path containing Chinese characters will cause WSL_E_CUSTOM_KERNEL_NOT_FOUND. This PR removes the faulty static cast and stores the config value in wstring instead of string. So non-ascii values are preserved. * Prevent potential invalid access for string array pretty print (#41673) * resolve comments (#41642) This is a follow up to PR #41512 Remove the redundant restore cgroup namespace code. Simplify the cgroup check logic by moving the retry inside the debug shell. Add a new systemd boot timeout test. * Use a static CRT in debug builds (#41684) * Fix potential test failure in BrokenDistroImport by not assuming the disk's block device in WSL (#41686) * Update releaseScripts reference from v1 to v2 (#41687) * INcrease the VM termination timeout to 30 seconds (#41688) * Impersonate the caller before making various filesystem operations (#41689) * Impersonate the caller before making various filesystem operations * Apply PR feedback * Support STDIN through SDK (#41698) * stdin flag * add winrt test, fix coroutine bug in streams * Followup to STDIN PR (#41703) * Add ability to format your branch (#41699) * Remove references to WSLC being in a preview (#41704) * Don't write to the install log file if it's a reparse point (#41705) * Use the latest ESRP signing key code (#41640) * Use the latest ESRP signing key code * Only change key code * Restore original pipeline line endings Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> * Refactor event stream cancellation waits (#41696) * Don't expect the brd module logline to stabilize the CustomDmesgOutput test case (#41714) * Use WSL icon for developer docs (#41715) * Use WSL icon for developer docs Co-authored-by: Copilot <[email protected]> Copilot-Session: ce78a21f-e946-4e9c-b2ea-934a5b0935f3 * Reuse docs logo as favicon Co-authored-by: Copilot <[email protected]> Copilot-Session: ce78a21f-e946-4e9c-b2ea-934a5b0935f3 --------- Co-authored-by: Ben Hillis <[email protected]> Copilot-Session: ce78a21f-e946-4e9c-b2ea-934a5b0935f3 * Fix: update drvfs gid uid after default uid is set in oobe (#41521) For a newly installed distro, the drvfs are initially mount as 0:0. And is not updated after oobe sets the default uid. This could cause access issues before the distro is restarted. This PR updates the auto mounted drvfs gid uid before completing the oobe. The non-auto mounted shares are not remounted to avoid breaking user set gid uid values. * Update WSLC SDK API documentation (#41677) * Update WSLC SDK API documentation Co-authored-by: Copilot <[email protected]> * Update docs * Update docs * Quick fixes --------- Co-authored-by: Copilot <[email protected]> Co-authored-by: Craig Loewen <[email protected]> * Updated README (#41723) * Expose kernel headers and perf to distributions (#41400) * Expose kernel headers and perf to distributions Mount kernel-matched headers and perf tooling from the artifacts VHD into each distribution, expose perf through the default environment, and cover the resulting paths and replacement behavior. Co-authored-by: Copilot <[email protected]> Copilot-Session: cdebc331-ad3e-492e-9591-c25587c859c5 * Address kernel artifact review feedback Correct the documented header target and directory fallback, and log failures while removing mount path environment variables. Co-authored-by: Copilot <[email protected]> Copilot-Session: cdebc331-ad3e-492e-9591-c25587c859c5 --------- Co-authored-by: Ben Hillis <[email protected]> Copilot-Session: cdebc331-ad3e-492e-9591-c25587c859c5 * Use iterators in FromJson to avoid copies (#41641) * Use iterators in FromJson to avoid copies * Cleanup * Fix template build * Format * Use a retry with timeout in HostPortCantBeBoundByGuest (#41728) * Run the nightly tests on ge-current (#41725) * Don't fail configuring the consommé loopback adapter when ipv6 is disabled (#41729) * Enable experimental sparse VHD creation (#41726) * Refine sparse VHD creation policy Co-authored-by: Copilot <[email protected]> * Enable experimental sparse VHD creation in WSL Co-authored-by: Copilot <[email protected]> * Make sparse VHD unsafe flag optional Co-authored-by: Copilot <[email protected]> * Keep fixed VHD creation non-sparse Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Ben Hillis <[email protected]> Co-authored-by: Copilot <[email protected]> * Update Microsoft.RemoteDesktop.Client.MSRDC.SessionHost to version 1.2.7391 (#41730) Co-authored-by: Ben Hillis <[email protected]> * Fix WSL container event timestamps (#41717) * Revert "Enable RedirectionGuard process mitigation" (#41744) * Revert "Enable RedirectionGuard process mitigation (#41542)" This reverts commit e53598d. * Add comments * Fix comment * Add --format json to wslc events (#41734) * Update the DACL to only allow access to the user when creating virtual disks (#41678) * Update the DACL to only allow access to the user when creating virtual disks * Save state * Increase test coverage * Fix test * Apply PR feedback * Apply PR feedback * Format * Apply PR suggestions * Apply PR suggestions * Clarify container image localization context (#41743) Add translator guidance distinguishing container images from pictures or photos for the affected WSLC strings. Co-authored-by: Copilot <[email protected]> Co-authored-by: Ben Hillis <[email protected]> Copilot-Session: 88d3d4b4-5a0e-4d97-9ed4-0fcd856e61de * Add RLCPlus-9 and RLCPlus-10 (Rocky Linux Plus, CIQ) (#41323) * Add RLCPlus-9 and RLCPlus-10 (Rocky Linux Plus, CIQ) * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <[email protected]> * Re-trigger CI: xattr check confirmed clean (no security.selinux attributes found), all four combinations remain boot-tested --------- Co-authored-by: Copilot Autofix powered by AI <[email protected]> * Fix race condition on system distro & init port access (#41762) * archlinux: Release 2026.10.01.179549 (#41755) This is an automated release [1]. [1] https://gitlab.archlinux.org/archlinux/archlinux-wsl/-/blob/main/.gitlab-ci.yml * Enable automatic vNUMA for large WSL VMs (#41741) * Enable automatic vNUMA for WSL VMs Add the HCS NUMA topology object so HCS can derive a supported virtual topology for large processor counts instead of requiring WSL to clamp the VM to 256 processors. Co-authored-by: Copilot <[email protected]> Copilot-Session: ea0c67c5-0211-479b-a7b5-59aebb19b71c * Gate automatic vNUMA on Germanium Preserve the existing single-node HCS configuration on older Windows builds where vNUMA topology creation is unsupported. Co-authored-by: Copilot <[email protected]> Copilot-Session: ea0c67c5-0211-479b-a7b5-59aebb19b71c * Remove vNUMA test coverage Co-authored-by: Copilot <[email protected]> Copilot-Session: ea0c67c5-0211-479b-a7b5-59aebb19b71c --------- Co-authored-by: Ben Hillis <[email protected]> Copilot-Session: ea0c67c5-0211-479b-a7b5-59aebb19b71c * Exclude wslc.exe and wslcsession.exe from custom LSP providers (#41767) * Exclude wslc.exe and wslcsession.exe from custom LSP providers * Include container.exe * Localization change from build: 159271766 (#41772) Co-authored-by: WSL localization <[email protected]> * Reuse EmptyObject for HCS NUMA configuration (#41768) Co-authored-by: Ben Hillis <[email protected]> Co-authored-by: Copilot <[email protected]> * Implement container health notifications to wslc events (#41763) * Save state * Increase test coverage * Remove useless state * Replace TableOutput with TableData model and TableRenderer (#41700) Co-authored-by: Copilot <[email protected]> * refactor container cp task to be simpler and move logic to container service and common filesystem helpers (#41668) Co-authored-by: Copilot Autofix powered by AI <[email protected]> * Use a fallback gateway if no ipv4 gateway is available in consommé networking (#41779) * Record Docker die and stop events with parity (#41770) * Save state (#41780) * Localization change from build: 159357096 (#41786) Co-authored-by: WSL localization <[email protected]> * Update issue template for WSLC (#41778) * Update issue tempalte for WSLC * Fix description * Run the nightly tests on Windows Server 2025 (#41760) * Run the nightly tests on ge-current * Run the nightly tests on Windows Server 2025 * Skip some network tests * Update name * Fix mirrored check * Use the server field * Localization change from build: 159470205 (#41800) Co-authored-by: WSL localization <[email protected]> * Fix various issues preventing the ModernOOBE test from running multiple times on the same test_distro (#41781) * Remove unused delay-load options (#41804) Co-authored-by: Ben Hillis <[email protected]> Co-authored-by: Copilot <[email protected]> * Disable pushing to the store by default (#41782) * Scope down the ephemeral port range in various consommé tests (#41805) * Fix race condition in LifetimeManager (#41807) * Use DistroFileChange instead of going through wsl.localhost (#41810) * Explicitely setup impersonation when instanciating IWslSupport (#41815) * Wait for bound ports to be released by the port relay in the tests (#41817) * Support reading the wslc image build context from stdin (#41765) Co-authored-by: Copilot <[email protected]> * Update Microsoft.WSL.Kernel to 6.18.54.1 (#41822) * Add logic to reject commands with extra arguments (#41821) * Add logic to reject commands with extra arguments * Simplify tests * Improve wslc event filters (#41809) * Localization change from build: 159727887 (#41826) Co-authored-by: WSL localization <[email protected]> * Make the binfmt mount writable (#41808) * Make the binfmt mount writeable * Apply PR suggestions * Match container and network filters across event types (#41818) * Fix incorrect wsl.conf warnings being displayed when creating a new distribution (#41820) * Convert EnsureCaseSensitiveDirectoryRecursive to iterative traversal (#40347) * Convert EnsureCaseSensitiveDirectoryRecursive to iterative traversal Replace unbounded recursive depth-first traversal with an iterative approach using an explicit stack. A deeply nested directory tree could overflow the thread stack during the recursive calls. The iterative version collects directories in reverse post-order during traversal, then marks them bottom-up (children before parents), preserving the ordering invariant that EnsureCaseSensitiveDirectory relies on for its early-exit optimization. Bug: 61964147, 61974992, 61911308, 61463090 Co-authored-by: Copilot <[email protected]> * Add deep-nesting regression test for case-sensitive recursion The original recursive EnsureCaseSensitiveDirectoryRecursive could blow the Windows 1 MB thread stack at a few hundred levels of nesting because each frame carried a FILE_ID_BOTH_DIR_INFORMATION enumeration buffer. The iterative implementation in this PR moves that state to the heap, so a very deep tree must complete without crashing. The test creates a 1024-level chain via the \\\\?\\ long-path prefix (cumulative path length exceeds MAX_PATH) and then calls EnsureCaseSensitiveDirectory on the root. Cleanup goes through the same long-path prefix so remove_all can see every component. Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Ben Hillis <[email protected]> Co-authored-by: Copilot <[email protected]> * Add publishing to DCAT, nuget to the release pipeline (#41549) * Add a testpass on rs_base2 (#41832) * Run the nightly tests on rs_base2 * Update tests for os change * Update tests * Localization change from build: 159856815 (#41839) Co-authored-by: WSL localization <[email protected]> * Fix the security model link in SECURITY.md (#41835) #41605 moved the security model to doc/docs/technical-documentation/security.md; the link in SECURITY.md still pointed at doc/docs/security.md. * Fix RLCPlus distribution manifest formatting (#41841) Restore canonical JSON indentation without changing distribution data so the distribution validation workflow passes its formatting check. Co-authored-by: Copilot <[email protected]> Co-authored-by: Ben Hillis <[email protected]> Copilot-Session: aa251cac-d075-47a8-8757-92e013a714d8 * Update GitPython to resolve Dependabot alerts (#41840) Upgrade both Python tooling requirement pins to 3.1.62, which fixes all four advisories reported across eight Dependabot alerts. Co-authored-by: Copilot <[email protected]> Co-authored-by: Ben Hillis <[email protected]> Copilot-Session: aa251cac-d075-47a8-8757-92e013a714d8 * Fix CaseSensitivityDeepNesting test build failure (#41849) Co-authored-by: Copilot <[email protected]> * Reorganize test/windows into common/, wsl/, and wslc/ (#41661) * Reorganize test/windows and split WSLCTests.cpp into per-domain files Co-authored-by: Copilot <[email protected]> * Split wslc tests into per-layer directories and move common unit tests under common/unit Co-authored-by: Copilot <[email protected]> * Flatten test/windows into common/, wsl/, wslc/ and move wslc helpers to common Co-authored-by: Copilot <[email protected]> * Port master's WSLC event and network tests into the split test files Co-authored-by: Copilot <[email protected]> * Revert WSLCTests.cpp split so the change is file moves only Co-authored-by: Copilot <[email protected]> * Update test layout guidance for common/wsl/wslc split Co-authored-by: Copilot <[email protected]> * Make CaseSensitivityDeepNesting testDir static constexpr so the lambda can use it Co-authored-by: Copilot <[email protected]> * Drop static from CaseSensitivityDeepNesting testDir so it can be captured Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> * Fix e2fsck return code 1 treated as failure in resize (#41720) e2fsck -f -y returns 1 or 2 when there were errors fixed. However, the resize implementation currently only accepts 0 as a success. This PR adds 1 and 2 to the accepted return codes. * Document WSL architecture and contributor commands for Copilot (#41843) Co-authored-by: Copilot <[email protected]> Co-authored-by: Ben Hillis <[email protected]> Copilot-Session: 25aa9436-0656-41c8-a222-d81d6414a9e6 * Add WSLC volume events (#41831) * Fix incorrect AAAA DNS resolution for static DNS records causing resolution failure in musl (#41859) * Fix race condition causing potential use-after-free in NatNetworking (#41850) * Acquire m_instanceLock before calling _ValidateDistributionNameAndPathNotInUse() (#41855) * Acquire m_instanceLock before calling _ValidateDistributionNameAndPathNotInUse * Cleanup diff * Cleanup diff * Make the store publish stage opt-in (#41857) * Remove the gate before publishing nuget packages, and rename to avoid confusion (#41858) * Remove the gate before publishing nuget packages, and rename to avoid confusion * Complete nuget * Fail bind() requests that fail in Windows (#41856) * Don't add swiotlb=force with the hv_pci swiotlb pool (#41829) The hv_pci pool is created with force_bounce set, so virtio devices bounce through it without the global flag. swiotlb=force only made every other device, mainly hv_storvsc, bounce all its I/O through the default 64 MB pool, which runs out under load (#41828). * Fix potential crash caused by error during session initialization (#41887) * Add a /hyperv to triage hyper-v issues (#41885) * Localization change from build: 160297307 (#41890) Co-authored-by: WSL localization <[email protected]> * Increase the default commited stack size to 64KB (#41888) * Increase the default commited stack size to 64KB * Fix formatting of stack size comment in CMakeLists Co-authored-by: Copilot Autofix powered by AI <[email protected]> --------- Co-authored-by: Copilot Autofix powered by AI <[email protected]> * suppress systemctl is-system-running pulling error messages (#41881) The systemctl is-system-running polling can produce error messages like Failed to connect to bus: No such file or directory before d-bus is ready. And those error messages are duplicated into /dev/kmsg by wsl. This PR suppresses the error messages as those are not useful for the polling result. * Disable unsafe move constructors in ScopedRelay (#41897) * Wait for the drvfs initialization thread to exit before destroying WslCoreVm (#41895) * Fix potential crash by use-after-free by in the stdin relay thread (#41894) * Release resources that could call callbacks before returning from HcsVirtualMachine's constructor on failure (#41908) * Narrow volume event publish ordering comments (#41889) * Apply clang-format to merged files Co-authored-by: Copilot <[email protected]> Copilot-Session: f2cf5bc5-64ce-4bfc-a921-ae7ca379ad64 * Add wslc cp alias for wslc container cp (#41902) * Add wslc cp alias for wslc container cp Co-authored-by: Copilot <[email protected]> * Move wslc cp usage examples under generated usage line with color Co-authored-by: Copilot <[email protected]> * Use cp short description key and add cp help example tests Co-authored-by: Copilot <[email protected]> * Remove cp help examples Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> * Fix potential starvation in COMImplClass::Disconnect (#41912) * Use repository NuGet configuration for out-of-tree builds (#41916) * Fix a potential use-after-free between plugin calls and WSLCSessionManagerImpl's destruction (#41911) * Save state * Simplify reset logic * Prepare for PR * Add missing synchronization around load WinHttp proxy methods (#41909) * Add missing synchronization around load WinHttp proxy methods * Fix loading logic * Fix missing synchronization on m_httpProxyStateTracker access (#41907) * Fix missing synchronization on m_httpProxyStateTracker access * Update header * Use the instance lock instead * Format * Fix potential deadlock in between VM exit callback and session shutdown (#41910) * Fix potential deadlock in between VM exit callback and ~LxssUserSessionImpl * Cleanup diff * Fix potential use-after-free in EpollWatcher (#41896) * Match docker -v parsing: LTR spec parser, shared validation, config-v… (#41905) * Match docker -v parsing: LTR spec parser, shared validation, config-volume anonymous volumes Co-authored-by: Copilot <[email protected]> * Reject extra colons in -v mode section Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> * Mount bind volumes during cp on non-running containers (#41906) * Mount bind volumes during cp on non-running containers Co-authored-by: Copilot <[email protected]> * Mirror issue repro in bind mount cp test Co-authored-by: Copilot <[email protected]> * Throw on deleted container in archive mounts, generate test tar in container Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> * reap sub processes during shutdown to unblock systemd (#41899) After the cgroup isolation change. The process tree looks like this: ``` init (systemd) in the distro cgroup namespace init (wsl) in the root cgroup namespace login in the distro cgroup namespace ``` And the poweroff sequence is: WSL init resets the signal handlers, which sets SIGCHLD to default. WSL init calls systemctl poweroff systemd kills processes in it's cgroup namespace like the login process. And skips processes like the wsl init in the root namespace. The WSL init does not reap the killed sub process. Making it a zombie in the distro namespace. Systemd waits for the zombie processes and blocks. The timeout in init finally shutsdown with RB_POWER_OFF. This could cause the terminate to wait for the timeout and slow down the termination. This PR adds a waitpid loop that reaps any subprocesses of the WSL init during systemd poweroff. So systemd is no longer stuck by the zombie processes. And it calls BR_POWER_OFF itself to kill the WSL processes in the same PID namespace but in the root cgroup namespace. * Localization change from build: 160603855 (#41933) Co-authored-by: WSL localization <[email protected]> * Fix incorrect srwlock usage in when initializing drvfs (#41925) * Fix potential deadlock in WSL1 instance termination (#41922) * Fix potential deadlock in WSL1 instance termination * Differenciate using instance ids * Prepare for PR * Fix potential use-after-free if the WSLC VM is killed while the last session COM reference is being released (#41946) --------- Co-authored-by: Ben Hillis <[email protected]> Co-authored-by: Ben Hillis <[email protected]> Co-authored-by: Blue <[email protected]> Co-authored-by: WSL localization <[email protected]> Co-authored-by: David Bennett <[email protected]> Co-authored-by: Feng Wang <[email protected]> Co-authored-by: ggarzia-MSFT <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: FetoiuCatalin <[email protected]> Co-authored-by: Catalin-Emil Fetoiu <[email protected]> Co-authored-by: beena352 <[email protected]> Co-authored-by: Flor Chacón <[email protected]> Co-authored-by: JohnMcPMS <[email protected]> Co-authored-by: Keith Horton <[email protected]> Co-authored-by: Craig Loewen <[email protected]> Co-authored-by: Patrick Swartz <[email protected]> Co-authored-by: Copilot Autofix powered by AI <[email protected]> Co-authored-by: Arch Linux Technical User <[email protected]> Co-authored-by: Mitchell Levy <[email protected]> Co-authored-by: Franco Ceballos Rastello <[email protected]> Co-authored-by: Oleg Tsvetkov <[email protected]> Co-authored-by: Tuna Birgün <[email protected]> Copilot-Session: ce78a21f-e946-4e9c-b2ea-934a5b0935f3 Copilot-Session: cdebc331-ad3e-492e-9591-c25587c859c5 Copilot-Session: 88d3d4b4-5a0e-4d97-9ed4-0fcd856e61de Copilot-Session: ea0c67c5-0211-479b-a7b5-59aebb19b71c Copilot-Session: aa251cac-d075-47a8-8757-92e013a714d8 Copilot-Session: 25aa9436-0656-41c8-a222-d81d6414a9e6 Copilot-Session: f2cf5bc5-64ce-4bfc-a921-ae7ca379ad64 * address previous feedback * . * Feedback * lifetime/callback cleanup * Address the rest of feedbac * Address feedback * feedback * Feedback * feedback * Remove devicehostproxy changes * Validate boot disk read access before granting VM access Restore the original validation order so a best-effort HCS access-grant failure cannot contaminate the read-access error context. Co-authored-by: Copilot <[email protected]> * Preserve disk state when VM termination fails Propagate HCS termination failures before beginning resource cleanup. Only restore attached disks and publish shutdown completion after termination succeeds or exit has already been reported. Co-authored-by: Copilot <[email protected]> * feedback * test fix * feedback * Eliminate potential race in terminate() * Remove redundant common include directory --------- Co-authored-by: Ben Hillis <[email protected]> Co-authored-by: Ben Hillis <[email protected]> Co-authored-by: Blue <[email protected]> Co-authored-by: WSL localization <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: Copilot Autofix powered by AI <[email protected]> Co-authored-by: David Bennett <[email protected]> Co-authored-by: Feng Wang <[email protected]> Co-authored-by: ggarzia-MSFT <[email protected]> Co-authored-by: FetoiuCatalin <[email protected]> Co-authored-by: Catalin-Emil Fetoiu <[email protected]> Co-authored-by: beena352 <[email protected]> Co-authored-by: Flor Chacón <[email protected]> Co-authored-by: JohnMcPMS <[email protected]> Co-authored-by: Keith Horton <[email protected]> Co-authored-by: Craig Loewen <[email protected]> Co-authored-by: Patrick Swartz <[email protected]> Co-authored-by: Arch Linux Technical User <[email protected]> Co-authored-by: Mitchell Levy <[email protected]> Co-authored-by: Franco Ceballos Rastello <[email protected]> Co-authored-by: Oleg Tsvetkov <[email protected]> Co-authored-by: Tuna Birgün <[email protected]> Co-authored-by: Daman Mulye <[email protected]> Copilot-Session: 563f9b88-0149-48a5-ac0c-07d6f0adbd9e Copilot-Session: ce78a21f-e946-4e9c-b2ea-934a5b0935f3 Copilot-Session: cdebc331-ad3e-492e-9591-c25587c859c5 Copilot-Session: 88d3d4b4-5a0e-4d97-9ed4-0fcd856e61de Copilot-Session: ea0c67c5-0211-479b-a7b5-59aebb19b71c Copilot-Session: aa251cac-d075-47a8-8757-92e013a714d8 Copilot-Session: 25aa9436-0656-41c8-a222-d81d6414a9e6 Copilot-Session: f2cf5bc5-64ce-4bfc-a921-ae7ca379ad64 Copilot-Session: 6dd56ac9-2a18-4b8a-8a41-fa065b9071f7
* Save state * Save state
Issue: Missing tar.exe left $LASTEXITCODE unchanged, so a previous zero could cause unarchived logs to be deleted and success falsely reported. Fix: Catch tar failures and fall back to ZIP, treat ZIP errors as failures, and verify archive creation before deleting logs. Preserve the logs if both methods fail.
Problem: wsl --exec could fail to find commands present in the launch’s PATH because execvpe() searched init’s environment instead. Fix: Set the final child’s environ to the prepared launch environment before execvpe(), so executable lookup uses the correct PATH.
…ed (#42196) Problem: Consomme discarded reachable Windows loopback proxies because automatic proxy filtering only allowed them in mirrored mode. Fix: Allow 127.0.0.1 proxies when Consomme localhost forwarding is enabled, preserve original settings across networking fallback, and update the rejection reason and warning.
Co-authored-by: WSL localization <[email protected]>
Co-authored-by: Copilot App <[email protected]>
* Add AzureLinux official WSL image to the distribution manifest Signed-off-by: Muhammad Falak R Wani <[email protected]> * Fix Line Endings Signed-off-by: Muhammad Falak R Wani <[email protected]> * Update Azure Linux 4.0 distribution metadata * Update Azure Linux 4 WSL artifact hashes --------- Signed-off-by: Muhammad Falak R Wani <[email protected]> Co-authored-by: Carla Pérez Gavilán Del Castill <[email protected]>
Real merge of origin/master to restore a shared merge base. Earlier sync PRs (#41952, #42020) were squash-merged, so git still saw the branches as diverged since 2026-09-15. Conflict resolution: - Files whose only feature-side changes came from the squashed sync commits take master's version. - OpenVMM-specific changes are kept on top of master: backend sources and dispatch, wslopenvmm_client linking, NuGet package, test binaries, VmGuestListener::SocketFile, nested virtualization warning, shared test helpers, and the rs_prerelease-2026-10-05 test image. Co-authored-by: Copilot <[email protected]> Copilot-Session: 9364eddb-5875-4548-9b6e-9d080b4198ba
Contributor
There was a problem hiding this comment.
🔵 Needs a closer look
The sync couples COM compatibility, VM/container lifetimes, and host/guest networking, requiring a full Windows build and HCS/OpenVMM runtime validation unavailable in this review environment.
No open issues 🎉
What changed in this PR
Synchronizes master into feature/openvmm, incorporating container networking and restart support, WSL reliability fixes, regression tests, and documentation updates.
Changes:
- Extends WSLC networking APIs, host-loopback settings, network ID references, and container restart policies.
- Updates lifecycle, synchronization, process, filesystem, installation, diagnostics, and settings behavior.
- Refreshes dependencies, packaging, policy translations, build integration, and API documentation.
Windows builds and runtime tests were not run in the review environment. This pull request is too complex or risky for automated approval.
| File | Description |
|---|---|
tools/devops/requirements.txt |
Updates the GitPython dependency pin. |
test/windows/wslc/WSLCRestartSchedulerUnitTests.cpp |
Tests callback-reference drainage during shutdown. |
test/windows/wslc/WSLCE2ENetworkRemoveTests.cpp |
Tests removal by network ID and prefix. |
test/windows/wslc/WSLCE2ENetworkInspectTests.cpp |
Tests inspection by network ID and prefix. |
test/windows/wslc/WSLCE2EGlobalTests.cpp |
Adds NUL-stdin session execution regressions. |
test/windows/wslc/ParserTestCases.h |
Adds end-of-options parsing cases. |
test/windows/wslc/CommandLineTestCases.h |
Adds restart-policy validation cases. |
test/windows/wslc/CMakeLists.txt |
Reformats test-source registration. |
test/windows/wsl/PolicyTests.cpp |
Tests mirrored-networking policy precedence. |
test/windows/wsl/PluginTests.h |
Adds a cgroup-isolation test selector. |
test/windows/wsl/MountTests.cpp |
Tests unmounting over a nonempty directory. |
test/windows/wsl/InstallerTests.cpp |
Tests upgrades during Windows Installer contention. |
test/windows/testplugin/Plugin.cpp |
Adds cgroup and signal-disposition test behavior. |
test/windows/common/Common.h |
Declares the service-state wait helper. |
test/windows/common/Common.cpp |
Adjusts failure diagnostics and expected error formatting. |
test/windows/common/COMImplClassUnitTests.cpp |
Tests last-reference release and concurrent disconnect. |
test/windows/CMakeLists.txt |
Includes HTTP proxy code and supporting libraries. |
test/linux/unit_tests/wslpath.c |
Extends Unicode path-escaping regression inputs. |
src/windows/wslsettings/Views/OOBE/GeneralPage.xaml.cs |
Unsubscribes view-model events on page exit. |
src/windows/wslsettings/Views/OOBE/GeneralPage.xaml |
Adds keep-running controls and error display. |
src/windows/wslsettings/LibWsl.cs |
Corrects native allocation disposal order. |
src/windows/wslsettings/Contracts/Services/IWslConfigService.cs |
Adds saved-value and immediate-commit contracts. |
src/windows/wslcsession/WSLCVirtualMachine.h |
Declares localhost configuration. |
src/windows/wslcsession/WSLCSessionRuntime.cpp |
Handles Docker startup exit, termination, and timeout. |
src/windows/wslcsession/WSLCRestartTransaction.h |
Adds restart ownership and cleanup coordination. |
src/windows/wslcsession/WSLCRestartBackoff.h |
Adds bounded exponential restart delays. |
src/windows/wslcsession/WSLCNetworkMetadata.h |
Adds resolved-network metadata. |
src/windows/wslcsession/WSLCContainerMetadata.h |
Persists container restart policy. |
src/windows/wslcsession/DockerHTTPClient.h |
Replaces pruning declaration with candidate enumeration. |
src/windows/wslcsession/CMakeLists.txt |
Updates event-store and lifecycle helper registration. |
src/windows/WslcSDK/WslcsdkPrivate.h |
Extends internal networking and compatibility state. |
src/windows/WslcSDK/wslcsdk.def |
Exports host-loopback and network-management APIs. |
src/windows/WslcSDK/winrt/SessionSettings.h |
Declares the host-loopback setting. |
src/windows/WslcSDK/winrt/SessionSettings.cpp |
Implements host-loopback setting conversion. |
src/windows/WslcSDK/winrt/Session.h |
Declares network APIs and termination-handler tracking. |
src/windows/WslcSDK/winrt/precomp.h |
Includes new network wrapper headers. |
src/windows/WslcSDK/winrt/NetworkSettings.h |
Defines the network-creation settings wrapper. |
src/windows/WslcSDK/winrt/NetworkInfo.h |
Defines the network metadata wrapper. |
src/windows/WslcSDK/winrt/ContainerNetwork.h |
Defines container network attachment settings. |
src/windows/WslcSDK/winrt/Container.h |
Declares network connection and disconnection methods. |
src/windows/WslcSDK/winrt/Container.cpp |
Implements network connection and disconnection wrappers. |
src/windows/WslcSDK/winrt/CMakeLists.txt |
Registers new network wrapper sources. |
src/windows/wslc/tasks/InspectTasks.cpp |
Clarifies network name-or-ID forwarding. |
src/windows/wslc/tasks/ContainerTasks.cpp |
Transfers restart arguments into container options. |
src/windows/wslc/services/SessionService.cpp |
Adjusts Docker-compatible event output fields. |
src/windows/wslc/services/NetworkService.h |
Clarifies network name-or-ID parameters. |
src/windows/wslc/services/NetworkService.cpp |
Forwards network name-or-ID references. |
src/windows/wslc/services/ContainerService.cpp |
Applies restart policy and retains started processes. |
src/windows/wslc/services/ConsoleService.cpp |
Distinguishes consoles from other character devices. |
src/windows/wslc/core/Command.h |
Extends the end-of-options parsing contract. |
src/windows/wslc/core/Command.cpp |
Propagates end-of-options parsing state. |
src/windows/wslc/commands/SystemEventsCommand.cpp |
Uses system-event-specific help resources. |
src/windows/wslc/commands/NetworkRemoveCommand.cpp |
Accepts network name-or-ID arguments. |
src/windows/wslc/commands/NetworkInspectCommand.cpp |
Accepts network name-or-ID arguments. |
src/windows/wslc/commands/NetworkDisconnectCommand.cpp |
Accepts network name-or-ID arguments. |
src/windows/wslc/commands/NetworkConnectCommand.cpp |
Accepts network name-or-ID arguments. |
src/windows/wslc/commands/ContainerRunCommand.cpp |
Adds restart policy and conflict validation. |
src/windows/wslc/commands/ContainerCreateCommand.cpp |
Adds restart policy and conflict validation. |
src/windows/wslc/commands/ContainerCommand.h |
Declares restart-option validation overrides. |
src/windows/wslc/arguments/SpecParsing.h |
Declares restart-policy parsing. |
src/windows/wslc/arguments/ArgumentValidation.cpp |
Converts and validates restart-policy arguments. |
src/windows/wslc/arguments/ArgumentParser.h |
Adds persistent end-of-options parser state. |
src/windows/wslc/arguments/ArgumentDefinitions.h |
Defines restart and network-reference arguments. |
src/windows/wslc/arguments/ArgumentConvertedTypes.h |
Adds the converted restart-policy type. |
src/windows/service/exe/WSLCSessionManager.h |
Exposes the versioned session-manager interface. |
src/windows/service/exe/WSLCSessionManager.cpp |
Implements versioned session creation and error support. |
src/windows/service/exe/WslCoreInstance.h |
Declares the instance-ID accessor. |
src/windows/service/exe/WslCoreInstance.cpp |
Adjusts OOBE events and Plan 9 synchronization. |
src/windows/service/exe/PluginManager.h |
Adds plugin-specific session identity tracking. |
src/windows/service/exe/LxssInstance.cpp |
Synchronizes Plan 9 target registration with teardown. |
src/windows/service/exe/LxssCreateProcess.h |
Passes plugin identity in process requests. |
src/windows/service/exe/HcsVirtualMachine.h |
Adds atomic VM-exit reporting state. |
src/windows/inc/RegistryWatcher.h |
Coordinates watcher shutdown with callback rearming. |
src/windows/inc/docker_schema.h |
Adds IPv6 endpoint IPAM fields. |
src/windows/common/wslutil.cpp |
Registers additional readable error codes. |
src/windows/common/WSLCRestartScheduler.h |
Declares delayed restart scheduling and shutdown. |
src/windows/common/WslCoreFilesystem.cpp |
Gates encrypted-VHD support by Windows version. |
src/windows/common/WslCoreConfig.h |
Removes obsolete NAT identity member declarations. |
src/windows/common/WslClient.cpp |
Applies running-only filtering to verbose listings. |
src/windows/common/WSLCContainerLauncher.h |
Declares restart policy and started-process retention. |
src/windows/common/WSLCContainerLauncher.cpp |
Implements restart options and started-process retention. |
src/windows/common/wslc/models/ContainerModel.h |
Stores the requested restart policy. |
src/windows/common/WindowsUpdateIntegration.cpp |
Supplies callbacks when progress reporting is unused. |
src/windows/common/timestamp.hpp |
Declares fractional timestamp parsing. |
src/windows/common/RingBuffer.cpp |
Corrects delimiter and wrapped-line reconstruction. |
src/windows/common/interop.cpp |
Maps caught HRESULTs to Linux errors. |
src/windows/common/install.cpp |
Reports Windows Installer contention explicitly. |
src/windows/common/GnsPortTrackerChannel.cpp |
Validates interface-name termination before callbacks. |
src/windows/common/ExecutionContext.h |
Removes the constructor’s noexcept declaration. |
src/windows/common/ExecutionContext.cpp |
Matches the updated constructor exception contract. |
src/windows/common/DnsTunnelingChannel.h |
Declares explicit receive-worker startup. |
src/windows/common/DnsTunnelingChannel.cpp |
Moves receive-worker startup outside construction. |
src/windows/common/disk.cpp |
Validates VHD readability and adds contextual errors. |
src/windows/common/ConsommeNetworking.h |
Adds DNS-suffix watching and adjusts port parameters. |
src/windows/common/COMImplClass.h |
Retains implementations until callers unregister. |
src/windows/common/CMakeLists.txt |
Registers shared event-store and restart-scheduler files. |
src/windows/common/APICompat.h |
Adds network-setting storage and session conversion. |
src/windows/common/APICompat.cpp |
Converts primary-network and host-loopback settings. |
src/shared/inc/lxinitshared.h |
Extends guest capabilities and process identity messages. |
src/shared/inc/CommandLine.h |
Uses filesystem semantics for absolute paths. |
src/linux/plan9/p9xattr.cpp |
Applies filesystem credentials when committing xattrs. |
src/linux/plan9/p9file.cpp |
Locks source metadata during file copying. |
src/linux/init/WSLCInit.cpp |
Adds DRM devices and adjusts worker/signal setup. |
src/linux/init/SecCompDispatcher.h |
Declares explicit dispatcher startup. |
src/linux/init/SecCompDispatcher.cpp |
Initializes shutdown signaling before worker startup. |
src/linux/init/plan9.cpp |
Restores the parent’s umask after setup. |
src/linux/init/localhost.cpp |
Starts seccomp dispatch after handler registration. |
src/linux/init/init.cpp |
Adjusts signals, execution environment, and errno preservation. |
src/linux/init/escape.cpp |
Restricts unescaping to the intended Unicode range. |
src/linux/init/DnsServer.cpp |
Suppresses SIGPIPE during TCP responses. |
src/linux/init/config.cpp |
Uses the generalized cgroup movement helper. |
src/linux/init/common.h |
Adds debug single-thread checks before cloning. |
packages.config |
Updates runtime, DeviceHost, and kernel packages. |
nuget/Microsoft.WSL.Containers/manifests/Microsoft.WSL.Containers.manifest |
Registers new WinRT network classes. |
msipackage/package.wix.in |
Enables MSI logging and registers compatibility interfaces. |
intune/zh-TW/WSL.adml |
Updates localized capability-policy explanation. |
intune/zh-CN/WSL.adml |
Updates localized capability-policy explanation. |
intune/tr-TR/WSL.adml |
Updates localized capability-policy explanation. |
intune/sv-SE/WSL.adml |
Updates localized capability-policy explanation. |
intune/ru-RU/WSL.adml |
Updates localized capability-policy explanation. |
intune/pt-PT/WSL.adml |
Updates localized capability-policy explanation. |
intune/pt-BR/WSL.adml |
Updates localized capability-policy explanation. |
intune/pl-PL/WSL.adml |
Updates localized capability-policy explanation. |
intune/nl-NL/WSL.adml |
Updates localized capability-policy explanation. |
intune/nb-NO/WSL.adml |
Updates localized capability-policy explanation. |
intune/ko-KR/WSL.adml |
Updates localized capability-policy explanation. |
intune/ja-JP/WSL.adml |
Updates localized capability-policy explanation. |
intune/it-IT/WSL.adml |
Updates localized capability-policy explanation. |
intune/fr-FR/WSL.adml |
Updates localized capability-policy explanation. |
intune/fi-FI/WSL.adml |
Updates localized capability-policy explanation. |
intune/es-ES/WSL.adml |
Updates localized capability-policy explanation. |
intune/en-GB/WSL.adml |
Updates localized capability-policy explanation. |
intune/de-DE/WSL.adml |
Updates localized capability-policy explanation. |
intune/da-DK/WSL.adml |
Updates localized capability-policy explanation. |
intune/cs-CZ/WSL.adml |
Updates localized capability-policy explanation. |
doc/docs/technical-documentation/boot-process.md |
Documents HCS backend ownership boundaries. |
doc/docs/api-reference/csharp/settings-classes/sessionsettings.md |
Documents host-loopback settings and requirements. |
doc/docs/api-reference/csharp/settings-classes/networksettings.md |
Documents network-creation settings. |
doc/docs/api-reference/csharp/settings-classes/index.md |
Links the network-settings reference. |
doc/docs/api-reference/csharp/settings-classes/containersettings.md |
Documents container network collections. |
doc/docs/api-reference/csharp/settings-classes/.pages |
Adds network settings to navigation. |
doc/docs/api-reference/csharp/enumerations/networkflags.md |
Documents network flag values. |
doc/docs/api-reference/csharp/enumerations/index.md |
Links the network-flags reference. |
doc/docs/api-reference/csharp/enumerations/error.md |
Documents ambiguous network-prefix errors. |
doc/docs/api-reference/csharp/enumerations/.pages |
Adds network flags to navigation. |
doc/docs/api-reference/csharp/data-classes/networkinfo.md |
Documents returned network metadata. |
doc/docs/api-reference/csharp/data-classes/index.md |
Links new network data classes. |
doc/docs/api-reference/csharp/data-classes/containernetwork.md |
Documents network attachment settings. |
doc/docs/api-reference/csharp/data-classes/.pages |
Adds network data classes to navigation. |
doc/docs/api-reference/csharp/core-classes/session.md |
Documents session network-management methods. |
doc/docs/api-reference/csharp/core-classes/container.md |
Documents connecting and disconnecting container networks. |
doc/docs/api-reference/cpp/settings-classes/sessionsettings.md |
Documents host-loopback settings and requirements. |
doc/docs/api-reference/cpp/settings-classes/networksettings.md |
Documents network-creation settings. |
doc/docs/api-reference/cpp/settings-classes/index.md |
Links the network-settings reference. |
doc/docs/api-reference/cpp/settings-classes/containersettings.md |
Documents container network collections. |
doc/docs/api-reference/cpp/settings-classes/.pages |
Adds network settings to navigation. |
doc/docs/api-reference/cpp/enumerations/networkflags.md |
Documents network flag values. |
doc/docs/api-reference/cpp/enumerations/index.md |
Links the network-flags reference. |
doc/docs/api-reference/cpp/enumerations/error.md |
Documents ambiguous network-prefix errors. |
doc/docs/api-reference/cpp/enumerations/.pages |
Adds network flags to navigation. |
doc/docs/api-reference/cpp/data-classes/networkinfo.md |
Documents returned network metadata. |
doc/docs/api-reference/cpp/data-classes/index.md |
Links new network data classes. |
doc/docs/api-reference/cpp/data-classes/containernetwork.md |
Documents network attachment settings. |
doc/docs/api-reference/cpp/data-classes/.pages |
Adds network data classes to navigation. |
doc/docs/api-reference/cpp/core-classes/session.md |
Documents session network-management methods. |
doc/docs/api-reference/cpp/core-classes/container.md |
Documents connecting and disconnecting container networks. |
doc/docs/api-reference/c/structures/wslcnetworksettings.md |
Documents network-creation structure fields. |
doc/docs/api-reference/c/structures/wslcnetworkinfo.md |
Documents returned network metadata fields. |
doc/docs/api-reference/c/structures/wslccontainernetwork.md |
Documents container network attachment structure. |
doc/docs/api-reference/c/structures/index.md |
Links new network structures. |
doc/docs/api-reference/c/structures/constants.md |
Updates option sizes and network constants. |
doc/docs/api-reference/c/structures/.pages |
Adds network structures to navigation. |
doc/docs/api-reference/c/session-apis/wslcsetsessionsettingshostloopback.md |
Documents host-loopback configuration. |
doc/docs/api-reference/c/session-apis/wslccreatesession.md |
Documents unsupported-setting runtime errors. |
doc/docs/api-reference/c/session-apis/index.md |
Links host-loopback configuration. |
doc/docs/api-reference/c/session-apis/.pages |
Adds host-loopback API to navigation. |
doc/docs/api-reference/c/network-apis/wslclistsessionnetworks.md |
Documents network enumeration and memory ownership. |
doc/docs/api-reference/c/network-apis/wslcdeletesessionnetwork.md |
Documents network deletion and reference resolution. |
doc/docs/api-reference/c/network-apis/wslccreatesessionnetwork.md |
Documents network creation and validation errors. |
doc/docs/api-reference/c/network-apis/index.md |
Introduces the network API index. |
doc/docs/api-reference/c/network-apis/.pages |
Defines network API navigation. |
doc/docs/api-reference/c/index.md |
Adds network APIs to the reference overview. |
doc/docs/api-reference/c/error-codes.md |
Adds the ambiguous network-prefix error code. |
doc/docs/api-reference/c/enumerations/wslcnetworkflags.md |
Documents network flag values. |
doc/docs/api-reference/c/enumerations/index.md |
Links the network-flags reference. |
doc/docs/api-reference/c/enumerations/.pages |
Adds network flags to navigation. |
doc/docs/api-reference/c/container-apis/wslcsetcontainersettingsnetworks.md |
Documents network configuration and input lifetimes. |
doc/docs/api-reference/c/container-apis/wslcsetcontainersettingsnetworkingmode.md |
Clarifies defaults and conflicting network settings. |
doc/docs/api-reference/c/container-apis/wslcdisconnectcontainernetwork.md |
Documents network disconnection and runtime requirements. |
doc/docs/api-reference/c/container-apis/wslccreatecontainer.md |
Documents network validation and compatibility errors. |
doc/docs/api-reference/c/container-apis/wslcconnectcontainernetwork.md |
Documents network connection and runtime requirements. |
doc/docs/api-reference/c/container-apis/index.md |
Links new container networking APIs. |
doc/docs/api-reference/c/container-apis/.pages |
Adds container networking APIs to navigation. |
doc/docs/api-reference/c/.pages |
Adds the network API navigation section. |
distributions/requirements.txt |
Updates the GitPython dependency pin. |
diagnostics/collect-wsl-logs.ps1 |
Verifies archive creation before deleting collected logs. |
CMakeLists.txt |
Loads helper modules and user configuration directly. |
Review effort: Balanced
Ben Hillis (benhillis)
approved these changes
Nov 10, 2026
Ben Hillis (benhillis)
deleted the
user/damanmulye/merge-master-into-openvmm
branch
November 10, 2026 03:06
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Sync master branch into feature/openvmm branch