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

Fermée
#1,371 2 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
1-2 jours
Accessibilité débutants
55/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
Active
Stack technique
typescript

Piste de recherche

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.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

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.

Langage dominant
TypeScript
Étoiles
621
Forks
30
Merge moyen
9 h 6 min
PR mergées (30 j)
487

Préparer son environnement

Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de callstackincubator/simlock

Toutes les issues de callstackincubator/simlock

Issues similaires

Plus d'issues TypeScript

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.