Warm pool boots no spare baseline copy while the warm one is held

Aperta
#1,371 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
1-2 giorni
Idoneità per principianti
55/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
typescript

Direzione di ricerca

Start by reading the warm pool capacity documentation and tracing the lease, release, and baseline pool behavior for warmPool.baselineLearnAfter. Reproduce with an iOS baseline learned after three leases, then hold the third lease and watch status for an idle copy. Done when the implementation matches the documented capacity behavior, or the docs clearly explain that a held warm device counts toward the target.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug:new
What happened

Once the warm pool had learned baseline demo (iOS), a lease took 0 s. But while that warm copy was leased (about 7 minutes), no spare copy was booted. Releasing it and leasing again 2 s later booted a new copy (38 s):

# three leases of the baseline, 45 s apart, each released first
lease 1: 27 s
lease 2: 23 s
lease 3: 0 s      # learned on the 3rd lease, as documented
# … that lease held about 7 minutes …
$ simlock --gateway release <lease 3>; sleep 2
$ simlock --gateway lease --platform ios --baseline demo --detach
{"push":"progress","stage":"booting","etaMs":60000}
lease: 38 s
What you expected

The capacity docs say the warm pool "keeps idle devices booted, so a lease starts without waiting for a boot", and keeps as many booted as were leased at once at the busiest moment (here 1). Either the pool should boot a replacement while the warm copy is held, so the next lease is 0 s, or the docs should say that a held warm device counts toward that target, so no idle spare exists.

How to reproduce
  1. Save an iOS baseline, then lease and release it three times (warmPool.baselineLearnAfter 3)
  2. Hold the 3rd lease for a few minutes. In status, watch whether an idle copy of the baseline boots.
  3. Release, and lease the baseline again.
Environment

Simlock 0.6.0 from main at 6674ad0cd, on both sides. Gateway: macOS 26.6.1 arm64. Worker (connected to the gateway over Tailscale): macOS 27.0.1 arm64, Xcode 27.1 (27A9275), emulator 37.2.13, platform-tools 36.0.0, cmdline-tools 19.0. Default warm pool settings. There was room: ios managed 2/5, RAM 11/28 GiB.

Logs and evidence

A released baseline copy is not reused (a new device id, dev_a9242485…), so the next lease always needs either a warm spare or a boot.

Written by an agent.

Lingua principale
TypeScript
Stelle
535
Fork
21
Merge medio
9h 10m
PR unite (30g)
454

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di callstackincubator/simlock

Tutte le issue di callstackincubator/simlock

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.