[Bug][macOS] `ocx service restart/repair` after LaunchAgent bootout reports "not loaded" on the first call

Aperta
#8,362 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
72/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
typescript
Ambito
backend

Direzione di ricerca

Start by tracing the macOS ocx service restart and repair paths that bootstrap the com.opencodex.proxy LaunchAgent and check whether it is serving on port 10100. Reproduce the reported sequence with launchctl bootout, then inspect related issues #4141 and #4236 for context. Done means a single restart after bootout restores the proxy and passes a bounded health check.

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

Descrizione

cli platform service

Summary

On macOS, after the com.opencodex.proxy LaunchAgent has been booted out (launchctl bootout gui/$UID/com.opencodex.proxy), the first ocx service restart or ocx service repair ends with

⚠️  installed, not loaded (launchd …)
   Registered, but no proxy is answering on port 10100.
   …
   Meanwhile: ocx start   (serves in the foreground)

Running ocx service repair a second time then succeeds (✅ opencodex service repaired and serving on port 10100.). Seen twice in a row today on 2.99.0 (npm global, macOS 27).

Sequence:

  1. launchctl bootout gui/$UID/com.opencodex.proxy (to edit config.json safely)
  2. edit config
  3. ocx service restart → not loaded / not serving
  4. ocx service repair → ✅ serving

and on the next cycle bootout → repair → not serving → repair → ✅.

Possibly a race between bootout completing and the re-bootstrap (launchd still tearing down the job), similar in spirit to #4141 / #4236.

Suggested fix

When the job is not loaded, restart/repair should bootstrap it and poll health for a bounded time (retrying bootstrap once on EIO/5), instead of reporting failure after the first attempt.

Acceptance

bootout → ocx service restart brings the proxy back on the first call.

Lingua principale
TypeScript
Stelle
16.9k
Fork
1.3k
Merge medio
23h
PR unite (30g)
687

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 lidge-jun/opencodex

Tutte le issue di lidge-jun/opencodex

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.