Skip to content

[Bug]: Inconsistent dstack offer --fleet #3672

@jvstme

Description

@jvstme

Steps to reproduce

  1. Create a cloud backend, an empty elastic cloud fleet, and an SSH fleet.

    $ dstack fleet
     NAME           NODES  GPU  SPOT  BACKEND       PRICE  STATUS  CREATED    
     on-prem        1      -    -     ssh           -      active  2 days ago 
        instance=0         -    -     ssh (remote)  -      idle    2 days ago 
     default        0..    -    auto  *             -      active  1 min ago
  2. Try running dstack offer with --fleet <ssh-fleet-name> and --fleet <cloud-fleet-name>

Actual behaviour

Without --fleet, both the idle SSH instance and the cloud offers are shown.

$ dstack offer --disk 1GB.. --memory 0.1GB.. --max-offers 3
 #  BACKEND                 RESOURCES                                    INSTANCE TYPE  PRICE         
 1  ssh (remote)            cpu=2 mem=1GB disk=38GB                      instance       $0       idle 
 2  vastai (dk-denmark)     cpu=32 mem=24GB disk=1GB gpu=RTX5090:32GB:1  28726526       $0.3869       
 3  vastai (us-california)  cpu=64 mem=64GB disk=1GB gpu=RTX5090:32GB:2  32851078       $0.6136

With --fleet <cloud-fleet-name>, the idle SSH fleet offer is filtered out.

$ dstack offer --disk 1GB.. --memory 0.1GB.. --max-offers 3 --fleet default
 #  BACKEND                 RESOURCES                                         INSTANCE TYPE  PRICE     
 1  vastai (dk-denmark)     cpu=32 mem=24GB disk=1GB gpu=RTX5090:32GB:1       28726526       $0.3869   
 2  vastai (us-california)  cpu=64 mem=64GB disk=1GB gpu=RTX5090:32GB:2       32851078       $0.6136   
 3  vastai (pl-poland)      cpu=96 mem=96GB disk=1GB gpu=RTXPRO6000WS:96GB:2  31065109       $1.8645   

However, with --fleet <ssh-fleet-name>, nothing is filtered out.

$ dstack offer --disk 1GB.. --memory 0.1GB.. --max-offers 3 --fleet on-prem
 #  BACKEND                 RESOURCES                                    INSTANCE TYPE  PRICE         
 1  ssh (remote)            cpu=2 mem=1GB disk=38GB                      instance       $0       idle 
 2  vastai (dk-denmark)     cpu=32 mem=24GB disk=1GB gpu=RTX5090:32GB:1  28726526       $0.3869       
 3  vastai (us-california)  cpu=64 mem=64GB disk=1GB gpu=RTX5090:32GB:2  32851078       $0.6136

Root cause--fleet only filters idle instance offers, while backend offers are retrieved without taking fleets into consideration.

Expected behaviour

The behavior of --fleet is consistent for idle instances and backend offers.

Option 1

Make backend offers respect --fleet, so that specifying --fleet <ssh-fleet-name> filters out all backend offers.

Option 2

Ignore --fleet for idle instances too.

dstack version

0.20.13

Server logs

Additional information

No response

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions