Description
I noticed a behavior regarding the state synchronization between parent and child queues, and I wanted to get a sanity check on whether this is the intended design or a bug.
When a parent queue is closed, the controller automatically closes the child queue and tags it with the annotation volcano.sh/closed-by-parent: "true".
However, if an admin manually closes the child queue while the parent is closed (using vcctl queue operate --name <child-queue> --action close), the controller does not update the closed-by-parent annotation because the queue state is already Closed.
When the parent queue is later reopened, the controller sees closed-by-parent: "true" on the child queue and automatically reopens it, overriding the explicit manual close command.
Steps to reproduce the issue
- Create a parent queue and a child queue pointing to it (both in
Open state).
- Close the parent queue:
vcctl queue operate --name <parent-queue> --action close
- Close the child queue:
vcctl queue operate --name <child-queue> --action close
- Reopen the parent queue:
vcctl queue operate --name <parent-queue> --action open
- Check child queue status:
kubectl get queue <child-queue> -o yaml #childqueue should be open
Describe the results you received and expected
Current behaviour: When the parent queue is reopened, the child queue automatically transitions back to the Open state. The annotation volcano.sh/closed-by-parent: "true" is never updated during the manual closing of child queue, which causes the controller to believe the queue was only closed by the parent, thus auto-reopening it.
Expected behaviour: The child queue should remain in the Closed state after the parent queue is reopened. When the admin explicitly closes the child-queue, the annotation volcano.sh/closed-by-parent should be updated to "false" (or deleted), indicating that the queue is now manually closed and should not be subject to automatic parent-conjunction reopening.
What version of Volcano are you using?
version: "1.15.0"
Any other relevant information
No response
Description
I noticed a behavior regarding the state synchronization between parent and child queues, and I wanted to get a sanity check on whether this is the intended design or a bug.
When a parent queue is closed, the controller automatically closes the child queue and tags it with the annotation
volcano.sh/closed-by-parent: "true".However, if an admin manually closes the child queue while the parent is closed (using
vcctl queue operate --name <child-queue> --action close), the controller does not update theclosed-by-parentannotation because the queue state is alreadyClosed.When the parent queue is later reopened, the controller sees
closed-by-parent: "true"on the child queue and automatically reopens it, overriding the explicit manual close command.Steps to reproduce the issue
Openstate).Describe the results you received and expected
Current behaviour: When the parent queue is reopened, the child queue automatically transitions back to the
Openstate. The annotationvolcano.sh/closed-by-parent: "true"is never updated during the manual closing of child queue, which causes the controller to believe the queue was only closed by the parent, thus auto-reopening it.Expected behaviour: The child queue should remain in the
Closedstate after the parent queue is reopened. When the admin explicitly closes the child-queue, the annotationvolcano.sh/closed-by-parentshould be updated to"false" (or deleted), indicating that the queue is now manually closed and should not be subject to automatic parent-conjunction reopening.What version of Volcano are you using?
version: "1.15.0"
Any other relevant information
No response