Skip to content

rfc28: replace property-add/remove with sched.property-update RPC - #561

Open
grondo wants to merge 2 commits into
flux-framework:masterfrom
grondo:rfc28-property-update
Open

grondo wants to merge 2 commits into
flux-framework:masterfrom
grondo:rfc28-property-update

Conversation

@grondo

@grondo grondo commented Oct 15, 2026

Copy link
Copy Markdown
Contributor

Problem: The property-add and property-remove acquire responses announce a change to one or more resource properties property, but the acquire protocol is one-way, so the sender cannot confirm the scheduler applied it. This could result in a runtime queue being started before the scheduler knows about its property.

Replace them with a sched.property-update request carrying the same payload. The response becomes the confirmation. Nothing implements the acquire responses today, so they are unused and unnecessary. Remove them.

@github-actions

Copy link
Copy Markdown

⚠️ linkcheck failed with status code 2

Problem: Instance-local properties such as queue membership may
change while an instance is running, but the component making the
change has no way to confirm that the scheduler has applied it.
A job whose constraint names a property the scheduler has not yet
applied may be rejected as unsatisfiable.

Define a sched.property-update request from the resource module to
the scheduler, carrying the properties to add and remove. The response
is the confirmation: the resource module sends the request before
applying the change to its own copy of R, and fails the operation
if the scheduler returns an error.

An ENOSYS response fails the operation, unlike sched.expiration
in RFC 27 where it is treated as success. An outdated expiration
affects the quality of a schedule, while an unapplied property
causes jobs that name it to be rejected.

Assisted-by: Claude:Opus-5
Problem: The acquire protocol defines property-add and property-remove
keys for announcing a property change to the scheduler, but the
protocol is one-way. The scheduler does not respond to acquire
responses, so the component making the change cannot confirm the
scheduler applied it before a job names that property. A job that
names an unapplied property may be rejected as unsatisfiable.

Remove both keys. sched.property-update serves the same purpose and
is acknowledged, so there is no case where the acquire responses are
the right mechanism. Nothing implements them.

Assisted-by: Claude:Opus-5
@grondo
grondo force-pushed the rfc28-property-update branch from 02e0c03 to 21f6447 Compare October 15, 2026 00:42
@github-actions

Copy link
Copy Markdown

⚠️ linkcheck failed with status code 2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant