Packaged app exits with code 1 roughly every 12 hours after the second native checkForUpdates() tick

Aperta
#684 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
3-5 giorni
Idoneità per principianti
45/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
electron, typescript
Ambito
desktop, devtools

Direzione di ricerca

Start by locating the main-process 6-hour setInterval and its native checkForUpdates() call; the issue does not name files or tests. Read how the updater currently schedules and serializes checks, then use the acceptance criteria to verify a signed packaged macOS build survives 25 hours and three accelerated cycles, detects a newer version, and completes a manual update and relaunch.

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

Descrizione

Problem. The packaged app (Electron 32.3.3, electron-updater 6.8.9, Squirrel.Mac) exits with code 1 roughly every 12 hours, every time, right after the second periodic native checkForUpdates() tick of a 6-hour setInterval. Confirmed across both v0.5.3 and v0.5.5, including a v0.5.5 run with no newer release to download — so the trigger is the recurring native check itself, not an update payload. No app-quit event is emitted; this is not a clean restart.

Proposed fix. Remove the recurring native checkForUpdates() call from the 24/7 main-process loop. Replace the bare setInterval with a self-scheduling setTimeout re-armed only after the prior check resolves, guarded by a single in-flight promise (no concurrent/overlapping checks). Reserve the native updater call for one serialized, user-approved download/install flow; poll a signed release manifest for passive discovery instead. Persist update-check-start/update-check-end (sequence number, duration, outcome) and any main-process fatal/exit diagnostics to updater.log. Separately, upgrade off Electron 32.x (minimum 34.5.8) to pick up the Squirrel.Mac ditto-launch-failure fix (electron/electron#47270, electron/electron#47271) — necessary but, per our research, not proven sufficient alone.

Acceptance. A signed packaged macOS build keeps the same PID for at least 25 hours and 3 accelerated update-check cycles, emits no exit(1), still detects a newer version, and completes one manual update/relaunch successfully.

Supporting diagnosis (6 timed incidents with source-line citations, ruling out token/session expiry and resource leak) and exact internal evidence are available on request.

Lingua principale
TypeScript
Stelle
8.5k
Fork
1.2k
Merge medio
14h 49m
PR unite (30g)
55

Preparare l'ambiente

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 HarnessMD/munder-difflin

Tutte le issue di HarnessMD/munder-difflin

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.