io_queue: Destroy priority class data with scheduling group #2993
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.
When a scheduling group is destroyed, the IO queue's priority_class_data
that corresponds to it stays intact. It's not actually a leak, as when
the reactor is destroyed all class data objects are collected.
However, if another scheduling group under the same ID is created, the
IO queue will re-use the dangling priority class for the newly created
group, but its name and shares won't match the new group until rename
or shares update. And it's not nice that IO class remains alive anyway.
Since scheduling group destruction must happen after all tasks from it
are completed and picked up, the class destruction code may also assume
that no queued or in-flight requests exist.
Test included.