Skip to content

Merge forward 3006.x into 3007.x #68234

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 46 commits into
base: 3007.x
Choose a base branch
from

Conversation

dwoz
Copy link
Contributor

@dwoz dwoz commented Aug 4, 2025

What does this PR do?

What issues does this PR fix or reference?

Fixes

Previous Behavior

Remove this section if not relevant

New Behavior

Remove this section if not relevant

Merge requirements satisfied?

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

Commits signed with GPG?

Yes/No

dwoz and others added 30 commits July 29, 2025 02:37
When the minion's key is overwritten with bad data, log a useful message
instead of traceback. Handle the error in a consistant way accross
salt.minion, salt.channel.client, and salt.crypt.
Allows event to be handled after the salt-minion service has received
a SIGTERM. Previously once the signal handler was entered, the ioloop
would no longer run. If there are events on the minion event bus that
needs processing, they would not be handled.

Moves the MinionManager stop() functionality to an async function and
allows the ioloop to run and clear any waiting events and returns to
masters.
Adds test for calling MinionManager stop() to test new functionality to
allow events to be processed as minion is stopping.

Sets up a MinionManager instance with a running event bus, then calls
the stop function and immeadiately sends a test message on the event bus
and reads it back to check that works once the stop() function has been
called.

Then checks that the usual functions to destroy the minion etc have
also been called.
Ignores warning from pylint about self.io_loop.add_callback() not being
callable - it clearly is as stop_async gets called.
Sets up the short sock_dir path in the test. Previously setting it in
conftest.py was breaking another test because I'd done it as a Path,
not a string, but I want to avoid changin behaviour of other tests, so
setting it locally to the test.
Modifies systemd_service.{restart,stop} to default to using
no_block=True when the service being stopped or restarted is the
salt-minion.

If you don't pass no_block, the minion blocks waiting for systemd to
restart the service, while systemd is waiting for the minion to exit.
Eventually, after systemd hits its timeout it will kill the salt minion
processes.

Behaviour for other services should remain the same and the functions
will still honour the value of no_block if passed as an argument.
Skips the test_operation_no_block_default test on Amazon Linux 2 as the
CI conatiner for that distro doesn't have a complete systemd setup.
This reverts commit 4c0e552.
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.

6 participants