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

engine: add input grace period and check pending chunks on shutdown #9952

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

singholt
Copy link
Contributor

@singholt singholt commented Feb 17, 2025

This PR makes the following changes:

1. Add an input grace period:

Currently, Fluent Bit pauses all inputs 1 second after SIGTERM. This PR creates an input grace period, which by default is one half the total "Grace" setting. This means that half way through the grace period Fluent Bit stops accepting any new logs and only sends logs pending in the buffers.

2. Check pending chunks on shutdown:

Previously the engine shutdown immediately if there were no pending tasks. A task is created from a chunk in the buffer. If there is a new chunk, but no task yet, the engine should keep running until the task is created and completed. This change makes the engine wait on shutdown for all pending chunks until the max grace period has expired.


Enter [N/A] in the box, if an item is not applicable to your change.

Testing
Before we can approve your change; please submit the following in a comment:

  • [N/A] Example configuration file for the change
  • Debug log output from testing the change
  • Attached Valgrind output that shows no leaks or memory corruption was found

If this is a change to packaging of containers or native binaries then please confirm it works for all targets.

  • [N/A] Run local packaging test showing all targets (including any new ones) build.
  • [N/A] Set ok-package-test label to test for all targets (requires maintainer to do).

Documentation

  • Documentation required for this feature

Backporting

  • Backport to latest stable release.

Fluent Bit is licensed under Apache 2.0, by submitting this pull request I understand that this code will be released under the terms of that license.

PettitWesley and others added 3 commits February 19, 2025 11:00
1. Input grace period

Currently, Fluent Bit pauses all inputs 1 second after SIGTERM. The change creates an input grace period, which by default is one half the total Grace setting. This means that half way through the grace period Fluent Bit stops accepting any new logs and only sends logs pending in the buffers.

2. Check pending chunks on shutdown
Previously the engine shutdown immediately if there were no
pending tasks. A task is created from a chunk in the buffer.
If there is a new chunk, but no task yet, the engine should
keep running until the task is created and completed.

This change makes the engine wait on shutdown for all
pending chunks until the max grace period has expired.

Signed-off-by: Wesley Pettit <[email protected]>
Co-authored-by: Anuj Singh <[email protected]>
@singholt singholt changed the title [wip] do not review yet [wip] engine: add input grace period and check pending chunks on shutdown Feb 19, 2025
@singholt singholt marked this pull request as ready for review February 19, 2025 21:42
@singholt singholt changed the title [wip] engine: add input grace period and check pending chunks on shutdown engine: add input grace period and check pending chunks on shutdown Feb 19, 2025
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.

2 participants