Skip to content
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

refactor(cmd): use resty.signal for process signaling #11621

Draft
wants to merge 6 commits into
base: master
Choose a base branch
from

Conversation

hanshuebner
Copy link
Contributor

Primary improvements:

  • Removes usage of os.execute() for sending signals
  • Decouples reading a pidfile from sending a signal
  • Adds quality-of-life APIs for sending sig-(term|kill|quit)

Some months ago I needed to look over the code in kong/cmd/utils/kill.lua and thought to myself "we can do better than os.execute() here." At long last, here are the improvements that stemmed from that thought.

Along the way I renamed the file to kong/cmd/utils/process.lua and changed the name of the is_running() function to exists() for aesthetic reasons. This and the other API changes to the file make the PR somewhat large, but these changes were done in separate commits, so review commit-by-commit if you want to have an easier read-through of the changes.

There was a flaky test in spec/02-integration/01-helpers/03-http_mock_spec.lua that was giving me trouble. It was actually related to this problem domain (waiting for a pidfile to exist and contain a PID), so I fixed it here as well.

Re-do #11382 without squashing, merge after #11620

There's a large refactor of this module in the pipeline, and renaming
from 'kill' to 'process' makes the API more sensible.
This is another name-only change ahead of some larger refactoring of the
kong.cmd.utils.process module.
This refactors kong.cmd.utils.process to use the resty.signal library
for sending signals instead of dropping to a shell.

This comes with improvements (albeit minor) to performance and security.
@hanshuebner hanshuebner changed the title Refactor/cmd utils process refactor(cmd): use resty.signal for process signaling Sep 20, 2023
@hanshuebner hanshuebner assigned flrgh and unassigned hanshuebner Sep 20, 2023
@flrgh
Copy link
Contributor

flrgh commented Sep 20, 2023

I'm reverting this to draft until we can also confirm that the LUA_CPATH issue (discussed elsewhere and mentioned in #11620 (comment)) has been fixed.

@flrgh flrgh marked this pull request as draft September 20, 2023 19:03
@github-actions
Copy link
Contributor

github-actions bot commented Oct 5, 2023

This PR is marked as stale because it has been open for 14 days with no activity.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants