Skip to content

[release-1.14] Stabilize predicates plugin execution order and rollback semantics - #5286

Merged
volcano-sh-bot merged 2 commits into
release-1.14from
copilot/release-114-stabilize-predicates-plugin
May 8, 2026
Merged

[release-1.14] Stabilize predicates plugin execution order and rollback semantics#5286
volcano-sh-bot merged 2 commits into
release-1.14from
copilot/release-114-stabilize-predicates-plugin

Conversation

Copilot AI commented May 8, 2026

Copy link
Copy Markdown
Contributor

Cherry-picking #5259 onto release-1.14 required manual conflict resolution in the predicates plugin. This updates plugin execution to deterministic ordering and aligns rollback behavior with reserve execution order.

  • Deterministic plugin execution across predicates stages

    • Added explicit order slices to PredicatesPlugin for each stage:
      • FilterOrder, StableFilterOrder, PreFilterOrder, ReserveOrder, PreBindOrder, ScoreOrder
    • Recorded order during InitPlugin() registration via stage-specific helper adders.
    • Replaced map iteration with ordered-slice traversal in:
      • PrePredicate, Predicate (stable + non-stable filters), BatchNodeOrder, runReservePlugins, PreBind.
  • Rollback semantics made symmetric with reserve path

    • Added a shared unreserve helper that iterates ReserveOrder in reverse.
    • Updated both deallocate flow (runUnReservePlugins) and PreBindRollBack to use reverse-order unreserve execution.
  • Naming alignment from the follow-up patch

    • Unified exported field naming:
      • PrefilterPluginsPreFilterPlugins
  • Focused test coverage for this backport

    • Added deterministic-order regression test for predicate failure reason aggregation.
    • Added reserve/unreserve ordering test to verify reverse rollback behavior.
for i := len(pp.ReserveOrder) - 1; i >= 0; i-- {
	plugin, exists := pp.ReservePlugins[pp.ReserveOrder[i]]
	if !exists {
		continue
	}
	plugin.Unreserve(ctx, state, pod, nodeName)
}

@volcano-sh-bot volcano-sh-bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label May 8, 2026
@volcano-sh-bot volcano-sh-bot added the size/XS Denotes a PR that changes 0-9 lines, ignoring generated files. label May 8, 2026
@volcano-sh-bot volcano-sh-bot added size/L Denotes a PR that changes 100-499 lines, ignoring generated files. and removed size/XS Denotes a PR that changes 0-9 lines, ignoring generated files. labels May 8, 2026
Copilot AI changed the title [WIP] Stabilize predicates plugin execution order and rollback semantics [release-1.14] Stabilize predicates plugin execution order and rollback semantics May 8, 2026
Copilot AI requested a review from JesseStutler May 8, 2026 02:33
@JesseStutler
JesseStutler marked this pull request as ready for review May 8, 2026 03:18
@volcano-sh-bot volcano-sh-bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label May 8, 2026
@JesseStutler

Copy link
Copy Markdown
Member

/approve
/lgtm

@volcano-sh-bot volcano-sh-bot added the lgtm Indicates that a PR is ready to be merged. label May 8, 2026
@volcano-sh-bot

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: JesseStutler

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@volcano-sh-bot volcano-sh-bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label May 8, 2026
@volcano-sh-bot
volcano-sh-bot merged commit 9651e60 into release-1.14 May 8, 2026
19 of 20 checks passed
@JesseStutler
JesseStutler deleted the copilot/release-114-stabilize-predicates-plugin branch May 9, 2026 01:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. lgtm Indicates that a PR is ready to be merged. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[release-1.14] Stabilize predicates plugin execution order and rollback semantics.

3 participants