Skip to content

fix(xo-server): fix _editVm memory limits - #10285

Open
b-Nollet wants to merge 1 commit into
masterfrom
bnt-fix-templateMemoryError
Open

fix(xo-server): fix _editVm memory limits#10285
b-Nollet wants to merge 1 commit into
masterfrom
bnt-fix-templateMemoryError

Conversation

@b-Nollet

@b-Nollet b-Nollet commented Aug 20, 2026

Copy link
Copy Markdown
Collaborator

Description

When creating a VM, if both template and memory were in the parameters and the memory value was lower than the template's static memory minimum, XO would try to respect these values, which violates the memory inequality that must be respected: static min <= dynamic min <= dynamic max <= static max and makes the XAPI error with MEMORY_CONSTRAINT_VIOLATION_ORDER

See https://chat.vates.tech/#/room/!OheqIrkcrqFOUEkYRY:vates.tech/$pVyQEjtZR3oo97gYO7yRpKbWd4A4Q1B70IqhPI5RcPY?via=vates.tech

Not worth a changelog entry IMO

Checklist

  • Commit
    • Title follows commit conventions
    • Reference the relevant issue (Fixes #007, See xoa-support#42, See https://...)
    • If bug fix, add Introduced by
  • Changelog
    • If visible by XOA users, add changelog entry
    • Update "Packages to release" in CHANGELOG.unreleased.md
  • PR
    • If UI changes, add screenshots
    • If not finished or not tested, open as Draft

Review process

If you are an external contributor, you can skip this part. Simply create the pull request, and we'll get back to you as soon as possible.

This 2-passes review process aims to:

  • develop skills of junior reviewers
  • limit the workload for senior reviewers
  • limit the number of unnecessary changes by the author
  1. The author creates a PR.
  2. Review process:
    1. The author assigns the junior reviewer.
    2. The junior reviewer conducts their review:
      • Resolves their comments if they are addressed.
      • Adds comments if necessary or approves the PR.
    3. The junior reviewer assigns the senior reviewer.
    4. The senior reviewer conducts their review:
      • If there are no unresolved comments on the PR → merge.
      • Otherwise, we continue with 3.
  3. The author responds to comments and/or makes corrections, and we go back to 2.

Notes:

  1. The author can request a review at any time, even if the PR is still a Draft.
  2. In theory, there should not be more than one reviewer at a time.
  3. The author should not make any changes:
    • When a reviewer is assigned.
    • Between the junior and senior reviews.
  4. If the PR relates to a change in the openAPI specification, a member of the DevOps team must also participate in the review.

@MathieuRA MathieuRA left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Except the side effect, LGTM

set(memory, vm) {
return vm.$call('set_memory_limits', vm.memory_static_min, memory, memory, memory)
const staticMin = Math.min(vm.memory_static_min, memory)
return vm.$call('set_memory_limits', staticMin, memory, memory, memory)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Side effect during VM creation

Previously, if a user attempted to create a VM with an amount of RAM lower than the minimum defined in the template, an error was throw.
Now, VM creation is accepted, even with a very low value (e.g., 1 KiB).

this may be acceptable, but it is important to ensure this is the intended behavior. If we accept this change, in a another PR we probably need to handle the XAPI error when attempting to start a VM with insufficient memory (so that a more explicit error message can be displayed to users)

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.

3 participants