Le slot 02 croise une application déjà debout sur le poste (nuage, 4002) : la table des applications existantes de satellites.md est incomplète, et cli.ports-du-gabarit ne peut pas le voir #77
Closed
opened 2026-09-17 10:57:20 +00:00 by nicolas-fryder
·
2 comments
No Branch/Tag specified
main
dev
@eqs/tooling@0.24.3
@eqs/testing@0.24.3
@eqs/telemetry@0.24.3
@eqs/platform-next@0.24.3
@eqs/platform-nest@0.24.3
@eqs/http@0.24.3
@eqs/errors@0.24.3
@eqs/config@0.24.3
@eqs/cli@0.24.3
@eqs/auth@0.24.3
@eqs/tooling@0.24.2
@eqs/testing@0.24.2
@eqs/telemetry@0.24.2
@eqs/platform-next@0.24.2
@eqs/platform-nest@0.24.2
@eqs/http@0.24.2
@eqs/errors@0.24.2
@eqs/config@0.24.2
@eqs/cli@0.24.2
@eqs/auth@0.24.2
@eqs/tooling@0.24.1
@eqs/testing@0.24.1
@eqs/telemetry@0.24.1
@eqs/platform-next@0.24.1
@eqs/platform-nest@0.24.1
@eqs/http@0.24.1
@eqs/errors@0.24.1
@eqs/config@0.24.1
@eqs/cli@0.24.1
@eqs/auth@0.24.1
@eqs/tooling@0.24.0
@eqs/testing@0.24.0
@eqs/telemetry@0.24.0
@eqs/platform-next@0.24.0
@eqs/platform-nest@0.24.0
@eqs/http@0.24.0
@eqs/errors@0.24.0
@eqs/config@0.24.0
@eqs/cli@0.24.0
@eqs/auth@0.24.0
@eqs/tooling@0.23.0
@eqs/testing@0.23.0
@eqs/telemetry@0.23.0
@eqs/platform-next@0.23.0
@eqs/platform-nest@0.23.0
@eqs/http@0.23.0
@eqs/errors@0.23.0
@eqs/config@0.23.0
@eqs/cli@0.23.0
@eqs/auth@0.23.0
@eqs/tooling@0.22.0
@eqs/testing@0.22.0
@eqs/telemetry@0.22.0
@eqs/platform-next@0.22.0
@eqs/platform-nest@0.22.0
@eqs/http@0.22.0
@eqs/errors@0.22.0
@eqs/config@0.22.0
@eqs/cli@0.22.0
@eqs/auth@0.22.0
@eqs/tooling@0.21.0
@eqs/testing@0.21.0
@eqs/telemetry@0.21.0
@eqs/platform-next@0.21.0
@eqs/platform-nest@0.21.0
@eqs/http@0.21.0
@eqs/errors@0.21.0
@eqs/config@0.21.0
@eqs/cli@0.21.0
@eqs/auth@0.21.0
@eqs/tooling@0.20.0
@eqs/testing@0.20.0
@eqs/telemetry@0.20.0
@eqs/platform-next@0.20.0
@eqs/platform-nest@0.20.0
@eqs/http@0.20.0
@eqs/errors@0.20.0
@eqs/config@0.20.0
@eqs/cli@0.20.0
@eqs/auth@0.20.0
@eqs/tooling@0.19.0
@eqs/testing@0.19.0
@eqs/telemetry@0.19.0
@eqs/platform-next@0.19.0
@eqs/platform-nest@0.19.0
@eqs/http@0.19.0
@eqs/errors@0.19.0
@eqs/config@0.19.0
@eqs/cli@0.19.0
@eqs/auth@0.19.0
@eqs/tooling@0.17.1
@eqs/testing@0.17.1
@eqs/telemetry@0.17.1
@eqs/platform-next@0.17.1
@eqs/platform-nest@0.17.1
@eqs/http@0.17.1
@eqs/errors@0.17.1
@eqs/config@0.17.1
@eqs/cli@0.17.1
@eqs/auth@0.17.1
@eqs/tooling@0.17.0
@eqs/testing@0.17.0
@eqs/telemetry@0.17.0
@eqs/platform-next@0.17.0
@eqs/platform-nest@0.17.0
@eqs/http@0.17.0
@eqs/errors@0.17.0
@eqs/config@0.17.0
@eqs/cli@0.17.0
@eqs/auth@0.17.0
@eqs/tooling@0.16.0
@eqs/testing@0.16.0
@eqs/telemetry@0.16.0
@eqs/platform-next@0.16.0
@eqs/platform-nest@0.16.0
@eqs/http@0.16.0
@eqs/errors@0.16.0
@eqs/config@0.16.0
@eqs/cli@0.16.0
@eqs/auth@0.16.0
@eqs/tooling@0.15.0
@eqs/testing@0.15.0
@eqs/telemetry@0.15.0
@eqs/platform-next@0.15.0
@eqs/platform-nest@0.15.0
@eqs/http@0.15.0
@eqs/errors@0.15.0
@eqs/config@0.15.0
@eqs/cli@0.15.0
@eqs/auth@0.15.0
@eqs/tooling@0.14.0
@eqs/testing@0.14.0
@eqs/telemetry@0.14.0
@eqs/platform-next@0.14.0
@eqs/platform-nest@0.14.0
@eqs/http@0.14.0
@eqs/errors@0.14.0
@eqs/config@0.14.0
@eqs/cli@0.14.0
@eqs/auth@0.14.0
@eqs/tooling@0.13.0
@eqs/testing@0.13.0
@eqs/telemetry@0.13.0
@eqs/platform-next@0.13.0
@eqs/platform-nest@0.13.0
@eqs/http@0.13.0
@eqs/errors@0.13.0
@eqs/config@0.13.0
@eqs/cli@0.13.0
@eqs/auth@0.13.0
@eqs/tooling@0.12.2
@eqs/testing@0.12.2
@eqs/telemetry@0.12.2
@eqs/platform-next@0.12.2
@eqs/platform-nest@0.12.2
@eqs/http@0.12.2
@eqs/errors@0.12.2
@eqs/config@0.12.2
@eqs/cli@0.12.2
@eqs/auth@0.12.2
@eqs/tooling@0.12.1
@eqs/testing@0.12.1
@eqs/telemetry@0.12.1
@eqs/platform-next@0.12.1
@eqs/platform-nest@0.12.1
@eqs/http@0.12.1
@eqs/errors@0.12.1
@eqs/config@0.12.1
@eqs/cli@0.12.1
@eqs/auth@0.12.1
@eqs/tooling@0.12.0
@eqs/testing@0.12.0
@eqs/telemetry@0.12.0
@eqs/platform-next@0.12.0
@eqs/platform-nest@0.12.0
@eqs/http@0.12.0
@eqs/errors@0.12.0
@eqs/config@0.12.0
@eqs/cli@0.12.0
@eqs/auth@0.12.0
@eqs/tooling@0.11.2
@eqs/testing@0.11.2
@eqs/telemetry@0.11.2
@eqs/platform-next@0.11.2
@eqs/platform-nest@0.11.2
@eqs/http@0.11.2
@eqs/errors@0.11.2
@eqs/config@0.11.2
@eqs/cli@0.11.2
@eqs/auth@0.11.2
@eqs/tooling@0.11.1
@eqs/testing@0.11.1
@eqs/telemetry@0.11.1
@eqs/platform-next@0.11.1
@eqs/platform-nest@0.11.1
@eqs/http@0.11.1
@eqs/errors@0.11.1
@eqs/config@0.11.1
@eqs/cli@0.11.1
@eqs/auth@0.11.1
@eqs/tooling@0.11.0
@eqs/testing@0.11.0
@eqs/telemetry@0.11.0
@eqs/platform-next@0.11.0
@eqs/platform-nest@0.11.0
@eqs/http@0.11.0
@eqs/errors@0.11.0
@eqs/config@0.11.0
@eqs/cli@0.11.0
@eqs/auth@0.11.0
@eqs/tooling@0.10.1
@eqs/testing@0.10.1
@eqs/telemetry@0.10.1
@eqs/platform-next@0.10.1
@eqs/platform-nest@0.10.1
@eqs/http@0.10.1
@eqs/errors@0.10.1
@eqs/config@0.10.1
@eqs/cli@0.10.1
@eqs/auth@0.10.1
@eqs/tooling@0.10.0
@eqs/testing@0.10.0
@eqs/telemetry@0.10.0
@eqs/platform-next@0.10.0
@eqs/platform-nest@0.10.0
@eqs/http@0.10.0
@eqs/errors@0.10.0
@eqs/config@0.10.0
@eqs/cli@0.10.0
@eqs/auth@0.10.0
@eqs/tooling@0.9.0
@eqs/testing@0.9.0
@eqs/telemetry@0.9.0
@eqs/platform-next@0.9.0
@eqs/platform-nest@0.9.0
@eqs/http@0.9.0
@eqs/errors@0.9.0
@eqs/config@0.9.0
@eqs/cli@0.9.0
@eqs/auth@0.9.0
@eqs/tooling@0.8.1
@eqs/testing@0.8.1
@eqs/telemetry@0.8.1
@eqs/platform-next@0.8.1
@eqs/platform-nest@0.8.1
@eqs/http@0.8.1
@eqs/errors@0.8.1
@eqs/config@0.8.1
@eqs/cli@0.8.1
@eqs/auth@0.8.1
@eqs/tooling@0.8.0
@eqs/testing@0.8.0
@eqs/telemetry@0.8.0
@eqs/platform-next@0.8.0
@eqs/platform-nest@0.8.0
@eqs/http@0.8.0
@eqs/errors@0.8.0
@eqs/config@0.8.0
@eqs/cli@0.8.0
@eqs/auth@0.8.0
@eqs/tooling@0.7.0
@eqs/testing@0.7.0
@eqs/telemetry@0.7.0
@eqs/platform-next@0.7.0
@eqs/platform-nest@0.7.0
@eqs/http@0.7.0
@eqs/errors@0.7.0
@eqs/config@0.7.0
@eqs/cli@0.7.0
@eqs/auth@0.7.0
@eqs/tooling@0.6.0
@eqs/testing@0.6.0
@eqs/telemetry@0.6.0
@eqs/platform-next@0.6.0
@eqs/platform-nest@0.6.0
@eqs/http@0.6.0
@eqs/errors@0.6.0
@eqs/config@0.6.0
@eqs/cli@0.6.0
@eqs/auth@0.6.0
@eqs/tooling@0.5.1
@eqs/testing@0.5.1
@eqs/telemetry@0.5.1
@eqs/platform-next@0.5.1
@eqs/platform-nest@0.5.1
@eqs/http@0.5.1
@eqs/errors@0.5.1
@eqs/config@0.5.1
@eqs/cli@0.5.1
@eqs/auth@0.5.1
@eqs/tooling@0.5.0
@eqs/testing@0.5.0
@eqs/telemetry@0.5.0
@eqs/platform-next@0.5.0
@eqs/platform-nest@0.5.0
@eqs/http@0.5.0
@eqs/errors@0.5.0
@eqs/config@0.5.0
@eqs/cli@0.5.0
@eqs/auth@0.5.0
@eqs/tooling@0.4.0
@eqs/testing@0.4.0
@eqs/telemetry@0.4.0
@eqs/platform-next@0.4.0
@eqs/platform-nest@0.4.0
@eqs/http@0.4.0
@eqs/errors@0.4.0
@eqs/config@0.4.0
@eqs/cli@0.4.0
@eqs/auth@0.4.0
@eqs/tooling@0.2.0
@eqs/telemetry@0.2.0
@eqs/errors@0.2.0
@eqs/config@0.2.0
@eqs/tooling@0.1.0
Labels
No labels
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".
No due date set.
Dependencies
No dependencies set.
Reference
Infrastructure/eqs-platform#77
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Ce qui ne va pas
Le slot
02attribué ànicolas-fryder/projet(#74) porte le port web 4002.Sur le poste de ce satellite,
4002est publié depuis 28 heures par unconteneur qui n'est pas de la flotte :
Le front ne démarre donc pas :
C'est le critère que le registre s'impose à lui-même, et il n'a pas pu
s'appliquer.
reference/satellites.mddit, à propos du slot01:Le raisonnement est juste. Ce qui manque, c'est que la table « Applications
existantes, hors socle » ne liste que HQ, ATLAS, Topologie, MCP Hub et CODEX.
nuagen'y est pas — donc le croisement était invisible au moment del'allocation, et la première attribution réelle du registre est tombée
dessus.
Ce que ça coûte
Bloquant pour le développement du front sur ce poste, et — c'est le point
gênant —
cli.ports-du-gabaritne peut pas l'attraper. Le contrôle refusela plage du slot
00, ce qui est exactement ce qu'il annonce et ce quirépondait à #74. Mais il valide
4002sans rien savoir de l'occupation réellede la machine : il vérifie qu'on n'est plus sur les ports du gabarit, pas qu'on
est sur des ports libres.
Le mode d'échec a donc simplement changé de forme. Avant #74 : deux piles se
marchaient dessus en silence. Après : la porte est verte, et c'est
EADDRINUSEau premierpnpm dev— franc, au moins, mais découvert parla personne et pas par l'outil.
Ce que je proposerais
Réattribuer, et mettre
satellites.mdà jour. Mesuré sur ce poste, lesslots
03à11ont leurs quatre ports libres :Je ne me sers pas tout seul : c'est précisément ce que #74 a établi —
consulter n'alloue rien, et se choisir un numéro reproduit le défaut d'un
cran plus loin.
Compléter la table des applications existantes avec
nuage(
nuage-apisur 4002, plus sesnuage-postgres,nuage-redis,nuage-minio). Une table d'exclusion incomplète ne protège de rien, etc'est elle qui décide de la validité d'un slot.
Faire regarder l'occupation réelle, à titre indicatif et non bloquant :
un
eqs doctorqui teste les quatre ports du dépôt — une socket qu'on ouvreet qu'on referme — dirait « 4002 est déjà pris sur cette machine » au moment
où c'est réparable, plutôt qu'au premier
pnpm dev. Non bloquant parce quel'occupation dépend de la machine et de l'heure : un contrôle bloquant sur
un état volatil est un contrôle qu'on finit par dispenser. Mais l'avertir
coûte trois lignes.
C'est complémentaire de
cli.ports-du-gabarit, pas un remplacement : l'undit « tu n'as pas de réservation », l'autre « ta réservation ne tient pas
ici ». Ce sont deux défauts différents et ils se trouvent à deux moments
différents.
Versions
eqs --version0.12.0,@eqs/*tous en 0.12.0, profilnest, gabariteqs-satellite-template@228f8e4. Windows 11, Docker 29.1.3.Contournement posé
Aucun pour l'instant :
.envet.env.exampleportent le slot02telqu'attribué, et
eqs doctorest vert. Le front ne se lève pas sur ce postetant que le port n'est pas réattribué ou
nuagedéplacé.Vos points 1 et 2 sont faits — et trouvés indépendamment le 2026-09-20, en attribuant son slot à
eqs-demo. La machine a démenti le registre deux fois de suite ce jour-là : le02croisaitnuage, puis le03proposé àeqs-demoa réponduport is already allocatedsur 55403, c'est-à-dire votre.env.Réattribution.
atelierporte le slot03au registre — celui qu'il fait déjà tourner.eqs-demoa pris le05, éprouvé en levant sa pile et en lisant les ports publiés avant de la redescendre.Table complétée.
nuagey figure (4002 / 3001 / 5433), et un tableau des slots hors service dit pourquoi01,02et06sont perdus, avec leur raison.Et la règle que votre ticket appelait, écrite dans
reference/satellites.md:Ce qui reste chez vous : votre
.env.examplecommitté annonce encore02. À passer en03pour s'aligner sur votre.envet sur le registre.Votre point 3 n'est pas fait, et le ticket reste ouvert pour lui. Votre argument est juste —
cli.ports-du-gabaritdit « tu n'as pas de réservation », pas « ta réservation ne tient pas ici », et ce sont deux défauts qui se trouvent à deux moments différents.Une difficulté à trancher avant d'écrire ce contrôle, et je préfère la poser que la découvrir : si la pile du dépôt tourne, ses propres ports sont occupés — par lui. Un contrôle qui les signale crie à chaque
eqs doctorlancé pendant unpnpm dev, et c'est le chemin le plus court vers une dispense. Distinguer « pris par moi » de « pris par un autre » demande de comparer le projet Compose du conteneur qui publie le port auSERVICE_NAMEdu dépôt — faisable,eqs doctorsait déjà interroger Docker, mais ce n'est plus les trois lignes que vous estimiez.Deux voies, et votre avis m'intéresse :
eqs doctorseulement quand la pile est éteinte, ou dans une commande d'initialisation jouée au moment où on demande un slot — ce qui est le seul moment où l'information sert vraiment.La 2 me paraît plus juste sur le fond : votre besoin est né à l'attribution, pas au diagnostic quotidien.
docs/profils.md: la liste des dépôts du profilnext-fullstacka trois entrées fausses sur quatre #92La prémisse de ce ticket vient de changer
nuageest en cours de rétrofit sur le socle depuis aujourd'hui (EQS-Sandbox/NUAGE, brancheretrofit-socle-eqs, les dix packages en 0.13.0, auth comprise). Il entre dans la flotte.Ce ticket proposait, en point 2, de « compléter la table des applications existantes avec
nuage» — c'est-à-dire de le traiter comme une exclusion permanente, au même titre que Dolibarr ou un service sur site. Ce n'est plus la bonne réponse : il lui faut une ligne dans le tableau des satellites, pas dans celui des applications qu'on contourne.Ce qui reste à trancher, et qui n'est pas mécanique
nuageoccupe aujourd'hui, en développement :41xx40xx554xx431xxAucun des trois ports ne tombe dans sa plage. Et
4002est précisément le port qui a fait sortir ce ticket : il croise lewebdu slot02.Deux sorties, et je n'ai pas d'avis tranché :
nuageprend un vrai slot et déplace ses ports. Le registre reste régulier,cli.ports-du-gabaritet le futur contrôle d'occupation réelle (point 3 de ce ticket) fonctionnent sans cas particulier. Coût : les ports sont écrits dans.env,.env.example,docker-compose.yml, la pile e2e, leREADMEet les scripts de smoke — et ils sont dans la tête de qui travaille dessus depuis un an.nuagehors plage, avec une colonne qui dit pourquoi. Le slot02reste consommé, comme06l'est par la seconde base d'eqs-demo— il y a donc déjà un précédent de slot consommé et documenté.La 2 me paraît plus honnête vis-à-vis de ce que le registre existe pour faire — dire ce qui est pris, pas ce qui est joli — et la 1 plus durable. C'est une décision de flotte, pas une décision de
nuage: je ne me sers pas tout seul, pour la même raison que #74.Ce que je retiens du ticket en attendant : un rétrofit change la catégorie d'un dépôt, et le registre n'a pas de moyen d'exprimer « était hors flotte, entre en flotte, garde ses ports ». C'est peut-être ça, le vrai manque.
En passant
La même table de
docs/profils.mdrangenuageennext-fullstackalors qu'il estnest, et y listemetalfrom, qui est sur une autre forge — ouvert en #92. Les deux registres tenus à la main ont le même défaut au même moment, ce qui plaide pour le point 3 de ce ticket : faire regarder la machine plutôt que le fichier.