oracle / oracle/oci-cli

Always-Free VM.Standard.A1.Flex silently rounds memory — no warning when provisioned shape differs from request

Open
#1,107 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
669
Forks
236
Avg merge
1m
Merged PRs (30d)
4

Description

Description

When launching a VM.Standard.A1.Flex instance with Always-Free quota, the OCI API silently rounds the requested memory to conform to an undocumented 6 GB/OCPU minimum. The CLI returns success with no warning that the provisioned shape differs from the requested shape.

Steps to Reproduce

Observed on us-ashburn-1 (PAYG account, Always-Free A1 allotment):

Requested Provisioned Behaviour
--shape-config '{"ocpus":2,"memory-in-gbs":8}' 2 OCPU / 12 GB Rounded UP 50% (8 → 12)
--shape-config '{"ocpus":2,"memory-in-gbs":16}' 2 OCPU / 12 GB Rounded DOWN 25% (16 → 12)
--shape-config '{"ocpus":1,"memory-in-gbs":6}' 1 OCPU / 6 GB Unchanged
--shape-config '{"ocpus":3,"memory-in-gbs":18}' 3 OCPU / 18 GB Unchanged

Expected Behaviour

When the provisioned shape differs from the requested shape, the CLI (or API response) should include a warning, e.g.:

WARN: requested 8 GB but provisioned 12 GB due to Always-Free A1.Flex minimum of 6 GB/OCPU.

At minimum, the Always Free page and the A1.Flex docs should document the 6 GB/OCPU floor.

Actual Behaviour

  • Silent rounding: no warning, no error, no log line in CLI output.
  • Asymmetric rounding: memory below 6 GB/OCPU rounds UP; memory above the feasible maximum for the OCPU count rounds DOWN. Both directions are silent.
  • Not documented: the 6 GB/OCPU rule does not appear in any official docs page.

Impact

Our first production deploy would have shipped on 12 GB instead of the requested 16 GB, silently shrinking the MySQL buffer pool. We only caught it by manually re-reading the OCI Console after launch, which cost an unnecessary terminate-and-relaunch cycle.

Suggested Fix

  1. Include a warning in the API response (and CLI output) when the provisioned shape-config differs from the requested shape-config.
  2. Document the 6 GB/OCPU minimum in the A1.Flex shape documentation and the Always Free limits page.
  3. Better yet — error out and require an explicit override flag (similar to how AWS handles shape incompatibilities).

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the VM.Standard.A1.Flex cases with --shape-config in us-ashburn-1 and compare the requested values with the provisioned shape returned by OCI. Trace how that response is surfaced in the CLI, then review the Always Free and A1.Flex documentation links. Done means the shape difference is no longer silent, or the documented behavior and supported resolution are clearly established.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
cli, cloud, infrastructure
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.