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

packetbeat/sniffer: fix shutdown logic #33979

Merged
merged 1 commit into from
Dec 12, 2022
Merged

Conversation

efd6
Copy link
Contributor

@efd6 efd6 commented Dec 7, 2022

What does this PR do?

This simplifies the shutdown logic and ensures that blocking calls all receive the signal to terminate when the Sniffer Stop method has been called.

Previously, the sniffer done chan was not shared, meaning that it was not closed and would not have had any effect if it were. The context that was being passed around was not a cancellation context and so never had a chance to terminate sniffHandle.

Why is it important?

The current behaviour does not allow correct termination of the beat.

Checklist

  • My code follows the style guidelines of this project
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • I have made corresponding change to the default configuration files
  • I have added tests that prove my fix is effective or that my feature works — manually tested
  • I have added an entry in CHANGELOG.next.asciidoc or CHANGELOG-developer.next.asciidoc.

Author's Checklist

  • Recommend careful review of the dataflow for shutdown through *sniffer.state and the ctx parameter.

How to test this PR locally

Related issues

Use cases

Screenshots

Logs

@efd6 efd6 self-assigned this Dec 7, 2022
@botelastic botelastic bot added needs_team Indicates that the issue/PR needs a Team:* label and removed needs_team Indicates that the issue/PR needs a Team:* label labels Dec 7, 2022
This simplifies the shutdown logic and ensures that blocking calls all receive the
signal to terminate when the Sniffer Stop method has been called.

Previously, the sniffer done chan was not shared, meaning that it was not closed
and would not have had any effect if it were. The context that was being passed
around was not a cancellation context and so never had a chance to terminate
sniffHandle.
@efd6 efd6 force-pushed the 33962-packetbeat branch from 1044560 to 19a4298 Compare December 7, 2022 06:22
@efd6 efd6 marked this pull request as ready for review December 7, 2022 06:25
@efd6 efd6 requested a review from a team as a code owner December 7, 2022 06:25
@elasticmachine
Copy link
Collaborator

Pinging @elastic/security-external-integrations (Team:Security-External Integrations)

@sonarqubecloud
Copy link

sonarqubecloud bot commented Dec 7, 2022

Please retry analysis of this Pull-Request directly on SonarCloud.

@elasticmachine
Copy link
Collaborator

💚 Build Succeeded

the below badges are clickable and redirect to their specific view in the CI or DOCS
Pipeline View Test View Changes Artifacts preview preview

Expand to view the summary

Build stats

  • Start Time: 2022-12-07T06:22:26.772+0000

  • Duration: 47 min 56 sec

Test stats 🧪

Test Results
Failed 0
Passed 1721
Skipped 19
Total 1740

💚 Flaky test report

Tests succeeded.

🤖 GitHub comments

Expand to view the GitHub comments

To re-run your PR in the CI, just comment with:

  • /test : Re-trigger the build.

  • /package : Generate the packages and run the E2E tests.

  • /beats-tester : Run the installation tests with beats-tester.

  • run elasticsearch-ci/docs : Re-trigger the docs validation. (use unformatted text in the comment!)

Copy link
Contributor

@ShourieG ShourieG left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@efd6 efd6 merged commit a4fdbac into elastic:main Dec 12, 2022
mergify bot pushed a commit that referenced this pull request Dec 12, 2022
This simplifies the shutdown logic and ensures that blocking calls all receive the
signal to terminate when the Sniffer Stop method has been called.

Previously, the sniffer done chan was not shared, meaning that it was not closed
and would not have had any effect if it were. The context that was being passed
around was not a cancellation context and so never had a chance to terminate
sniffHandle.

(cherry picked from commit a4fdbac)
efd6 added a commit that referenced this pull request Dec 12, 2022
This simplifies the shutdown logic and ensures that blocking calls all receive the
signal to terminate when the Sniffer Stop method has been called.

Previously, the sniffer done chan was not shared, meaning that it was not closed
and would not have had any effect if it were. The context that was being passed
around was not a cancellation context and so never had a chance to terminate
sniffHandle.

(cherry picked from commit a4fdbac)

Co-authored-by: Dan Kortschak <90160302+efd6@users.noreply.github.com>
chrisberkhout pushed a commit that referenced this pull request Jun 1, 2023
This simplifies the shutdown logic and ensures that blocking calls all receive the
signal to terminate when the Sniffer Stop method has been called.

Previously, the sniffer done chan was not shared, meaning that it was not closed
and would not have had any effect if it were. The context that was being passed
around was not a cancellation context and so never had a chance to terminate
sniffHandle.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants