-
Notifications
You must be signed in to change notification settings - Fork 344
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
Fix memory issues with pcmk__schedule_actions() #3810
Merged
+194
−173
Merged
Changes from 1 commit
Commits
Show all changes
19 commits
Select commit
Hold shift + click to select a range
a90267c
Refactor: various: Use uint32_t for group of pcmk_sim_flags internally
nrwahl2 ff6e7a9
Refactor: fencer: Set scheduler input, flags, and status explicitly
nrwahl2 37f7210
Refactor: scheduler: Set scheduler input, flags, and status explicitly
nrwahl2 625672d
Fix: tools: Avoid crash in crm_simulate --profile
nrwahl2 8b9caad
Low: libpacemaker: Fix mem leak in pcmk__profile_dir()
nrwahl2 a1d8655
Refactor: libpacemaker: Create scheduler object in pcmk__profile_dir()
nrwahl2 481b0dd
Low: libpacemaker: Handle scandir() error in pcmk__profile_dir()
nrwahl2 64281ae
Refactor: libpacemaker: Best practices for pcmk__profile_dir()
nrwahl2 9f1edd8
Refactor: libpacemaker: Use scandir() filter in pcmk__profile_dir()
nrwahl2 3fca1ba
Low: tools: Fix overflow in crm_simulate --repeat
nrwahl2 767c55f
Refactor: libpacemaker: Pass NULL input in pcmk__simulate()
nrwahl2 27d519f
Refactor: libpacemaker: Set input and flags explicitly in pcmk__verify()
nrwahl2 eae8f5b
Refactor: libpacemaker: Don't make unnecessary copy for scheduler input
nrwahl2 00b82bd
Refactor: tools: update_dataset() passes nulls to pcmk__schedule_actions
nrwahl2 ae63ed5
Refactor: tools: Set scheduler flags explicitly in wait_till_stable()
nrwahl2 4a3f90b
Refactor: libpacemaker: Drop unused args from pcmk__schedule_actions()
nrwahl2 5dbc819
Fix: libpe_status: Make cluster_status() idempotent
nrwahl2 f280506
Refactor: libpacemaker: Unpack status in pcmk__schedule_actions()
nrwahl2 b1ac2a5
Feature: libpacemaker: Reset scheduler object in pcmk_simulate()
nrwahl2 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Low: libpacemaker: Fix mem leak in pcmk__profile_dir()
Previously, we leaked cib_object in profile_file() if repeat > 1. Currently the only caller is crm_simulate, and we know the scheduler object has no relevant state at call time. Thus we can reset the scheduler before doing the simulation. We can avoid unnecessary copies and special case handling by setting scheduler->input to cib_object and then setting it back to NULL before resetting the scheduler. Then we can make sure cib_object is freed unconditionally at the end. Signed-off-by: Reid Wahl <nrwahl@protonmail.com>
commit 8b9caadbdfe7063ef3d15e54a5d8eca7dcdf8137
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We could split this out into its own PR as well to make potential backporting easier, but it's only ever going to affect crm_simulate, and I don't think that's really worth the time.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can check if it's trivial or not. Currently I've got it ordered after the the crash fix. I did that because right now on main, the mem leak is not reproducible (and thus the fix is not testable) until the crash is fixed. Meanwhile, the crash isn't present on 3.0.0.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
But yeah to your point I don't see how it could affect anything besides
crm_simulate
so why bother. It's not currently exposed via any public API, and if it ever is, then it'll be on a Pacemaker version that has this fix.