Skip to content

Fix minion startup failure on Windows when ipv6: true is set#69178

Open
twangboy wants to merge 3 commits into
saltstack:3007.xfrom
twangboy:fix/66603/3007.x
Open

Fix minion startup failure on Windows when ipv6: true is set#69178
twangboy wants to merge 3 commits into
saltstack:3007.xfrom
twangboy:fix/66603/3007.x

Conversation

@twangboy
Copy link
Copy Markdown
Contributor

What does this PR do?

Three IPC socket paths in the TCP transport hardcoded AF_INET / 127.0.0.1 regardless of the ipv6 option. On Windows, binding or connecting an AF_INET6 socket to an IPv4 address (or vice-versa) is rejected by the OS, causing the minion to fail to start with gaierror(11001).

  • Add _ipc_loopback(opts) helper to salt.transport.base; update ipc_publish_server() and ipc_publish_client() to pass ::1 instead of 127.0.0.1 when ipv6: true is set
  • Fix TCPPuller.start() to select AF_INET6 when the host contains ':'
  • Fix _TCPPubServerPublisher._connect() with the same family detection

Add unit tests for all three fixes. Update the ipv6 option documentation
in master.rst, minion.rst, and the default config files to explain the
IPC loopback address behaviour.

What issues does this PR fix or reference?

Fixes #66603

Merge requirements satisfied?

[NOTICE] Bug fixes or features added to Salt require tests.

Commits signed with GPG?

Yes

twangboy added 2 commits May 15, 2026 20:33
Three IPC socket paths in the TCP transport hardcoded AF_INET / 127.0.0.1
regardless of the ipv6 option. On Windows, binding or connecting an
AF_INET6 socket to an IPv4 address (or vice-versa) is rejected by the OS,
causing the minion to fail to start with gaierror(11001).
- Add _ipc_loopback(opts) helper to salt.transport.base; update
  ipc_publish_server() and ipc_publish_client() to pass ::1 instead of
  127.0.0.1 when ipv6: true is set
- Fix TCPPuller.start() to select AF_INET6 when the host contains ':'
- Fix _TCPPubServerPublisher._connect() with the same family detection
Add unit tests for all three fixes. Update the ipv6 option documentation
in master.rst, minion.rst, and the default config files to explain the
IPC loopback address behaviour. (fixes saltstack#66603)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

test:full Run the full test suite

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant