fix(prism-lium): abort rent when rent_gpu_count > 1 - #238
Open
echobt wants to merge 2 commits into
Open
Conversation
Refuse POST /rent when rent_count exceeds the requested width so an 8× B200 NCU/whole-host upsell cannot run on a 1× Proof harvest pin. Co-authored-by: Mathis <echobt@users.noreply.github.com>
Greptile SummaryThis PR generalizes the LIUM pre-rent guard so provisioning refuses any whole-host GPU count greater than the requested width and adds coverage for 2× and 8× NCU B200 offers.
Confidence Score: 4/5The PR is not safe to merge until an oversized candidate is handled without skipping later valid offers and exhausted candidates retain no-capacity recovery semantics. The rent guard successfully prevents oversized POST bodies, but its immediate generic error can turn an otherwise satisfiable or recoverable capacity condition into a permanent provisioning failure. Files Needing Attention: crates/prism-lium/src/client.rs
|
| Filename | Overview |
|---|---|
| crates/prism-lium/src/client.rs | Generalizes the pre-POST over-width guard and adds B200 refusal tests, but aborts the entire candidate loop on the first oversized offer. |
| crates/prism-lium-types/src/types.rs | Updates documentation to explain that whole-host NCU rent counts can exceed the requested width and are refused by the client. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[List and sort matching offers] --> B[Examine next candidate]
B --> C{rent_count > requested?}
C -->|Yes, current implementation| D[Return generic API error]
D --> E[Later valid offers skipped]
D --> F[Not classified as no-capacity]
C -->|No| G[POST requested rent]
G --> H[Wait for running pod]
Reviews (1): Last reviewed commit: "fix(prism-lium): abort rent when rent_gp..." | Re-trigger Greptile
Do not POST rent_gpu_count > requested, but continue the candidate loop so a later split 8× B200 can still rent 1×. Co-authored-by: Mathis <echobt@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Hard-abort Lium
POST /rentwhenrent_gpu_countexceeds the requested width (InstanceSpec.gpu_count/ ProofHarvestLimits.gpu_count, default 1).Prod 2026-09-08 rented an 8× NVIDIA B200 (
rent_gpu_count=8) then hitCREATION_FAILED. The previous abort only covered 8× 5090. NCU / whole-host B200rent_count(1)→8was still posted.rent_gpu_count > spec.gpu_count, then continue so a later split 8× B200 can still rent 1×.gpu_count=8.available_gpu_countstill rents 1×.provision_refuses_8x_b200_when_requesting_oneproves the 8× NCU path is refused.provision_skips_ncu_upsell_and_rents_split_1xcovers Greptile P1 (2× NCU + split 8× → rent 1×).Did not invent digests, touch
FORCE_SIM/StubWin, or change prod pins.Greptile
Every PR is reviewed by Greptile before merge. Config:
.greptile/.@greptileai reviewTest plan
cargo test -p prism-lium -p prism-lium-typescargo fmt --all -- --checkcargo clippy -p prism-lium -p prism-lium-types --all-targets -- -D warningsRisk
Proof harvest will not POST NCU / whole-host upsells that exceed the requested GPU count. A later split-capable offer in the same candidate set can still rent 1×. No deploy pin or emission change.
Naming
I did not rename
BASE_*environment variables, deployed host paths(
/opt/base,/run/base, …), GHCRbaseintelligence/basepackage names, orbase-*-v1cryptographic domain tags, unless this PR’s purpose is a coordinatedcutover documented in
docs/NAMING.md.