Declare this machine's GPUs from serve, and refuse a bad limit as a flag
GPU count is not detected, so FLOW_GPUS was 0 on a fresh install and a node asking for one was silently clamped to zero and ran concurrently with every other. Setting the variable serialised them, but it was an environment variable only — `serve` had --max-runs and --max-workers and no --gpus. The clamp warning now names the flag when nothing here declares a card. The same flags are written into the environment before the settings are built, so a value they refused died in a pydantic import naming no flag. They are checked where they are typed instead. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019Hra4ndWMCLU5F3KjUuVAc
This commit is contained in:
@@ -129,7 +129,7 @@ def test_a_preferred_label_falls_back_here_and_is_still_accounted(loop):
|
||||
assert placer.local.snapshot()["cpus"]["free"] == 1
|
||||
|
||||
|
||||
def test_asking_for_more_than_anything_has_gets_what_there_is(loop):
|
||||
def test_asking_for_more_than_anything_has_gets_what_there_is(loop, caplog):
|
||||
"""A flow written on a cluster still has to run on a laptop."""
|
||||
placer = placer_over(cpus=2)
|
||||
|
||||
@@ -138,6 +138,10 @@ def test_asking_for_more_than_anything_has_gets_what_there_is(loop):
|
||||
assert allocation.cpus == 2
|
||||
assert allocation.gpus == ()
|
||||
|
||||
# Cards are declared, not detected, so a machine that has one reads as
|
||||
# having none until it is told — and the warning is where that is noticed.
|
||||
assert "fluksio serve --gpus" in caplog.text
|
||||
|
||||
|
||||
def test_what_is_clamped_to_is_a_machine_that_exists(loop):
|
||||
"""Each dimension taken separately can describe a machine nobody has.
|
||||
|
||||
Reference in New Issue
Block a user