Investigate missing Windows agent settlement after Job cancellation
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 28/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- javascript
- Área
- backend, devops, testing-qa
Línea de trabajo
Start with server/lib/windowsAgentSupervisor.cs, server/lib/windowsAgentProcess.js, and server/lib/windowsAgentProcess.test.js; inspect the failed native Windows CI run and identify which settlement stage lacks privacy safe evidence. Run the declared finite cancellation matrix on Windows with real native processes, distinguishing accounting, signaling, receipt persistence, and supervisor failure. Done means a demonstrated cause is fixed and the listed native boundary cases pass while preserving deadlines and proof requirements.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Problem and evidence
The Windows native CI contract lib/windowsAgentProcess.test.js > native Windows release-agent boundary > cancels the exact Job, persists descendant settlement and preserves a neighboring process failed on PR #14032 at a243bad2499b4647e3fb7b232d7a7b0146ef5b8e:
https://github.com/atomantic/PortOS/actions/runs/40794593042/job/123188453731
The fixture observed started.json, requested cancellation through killProcessTree, awaited the supervisor's close, and then readWindowsAgentSettlement(agent) refused with WINDOWS_AGENT_PROCESS_UNVERIFIED at the assertion near line 119. The job had 151 passing tests and 37 skips. It does not record which receipt/schema/identity condition was unavailable; no causal fault is established.
Context: hosted Windows Server 2025, runner image windows-2025-vs2026 / 20261021.278, Node 26.12.1 x64, native server Vitest with no browser. The prior head's native job passed: https://github.com/atomantic/PortOS/actions/runs/40793879441/job/123185739710 . The Topaz branch does not change windowsAgentProcess.js, windowsAgentSupervisor.cs, or windowsAgentProcess.test.js. These observations support a suspected intermittent boundary failure, not a proven cause or resolution.
Expected: cancellation settles only the exact owned Job, durably publishes the matching whole-tree receipt before normal supervisor completion, and leaves the neighboring process alive. Actual: the durable reader refused after close; the log cannot distinguish missing receipt, failed supervisor stage, or invalid proof.
Chosen next step
Instrument the native supervisor and its boundary test with bounded, allowlisted phase/error and receipt-availability facts, then investigate on Windows with a predeclared finite cancellation matrix. In particular, distinguish empty-Job accounting, retained-process signaling, receipt persistence, and supervisor failure. The zero-time process-signal check after empty accounting is a hypothesis to examine, not a demonstrated cause. Do not print command text, arbitrary exception strings, process identifiers, paths, owner nonces or live instance data.
Affected files: server/lib/windowsAgentSupervisor.cs, server/lib/windowsAgentProcess.js, server/lib/windowsAgentProcess.test.js, and the native Windows CI diagnostic path.
Acceptance criteria
- Retain enough privacy-safe native evidence to identify the failing stage and distinguish publication/identity errors from process settlement.
- Use real Windows native processes with a declared finite run count, stopping on a useful recurrence and reporting non-reproduction honestly.
- Fix any demonstrated cause and cover cancellation, detached descendants, neighboring-process preservation, restart reading, supervisor loss and missing/corrupt proof at the native/service boundary.
- Preserve current deadlines and whole-tree/owner/process-generation assertions; no skip, sleep-after-close workaround, retry-until-green, PID-absence fallback or fabricated receipt.
- Missing or uncertain proof continues to hold recovery. A passing CI rerun is validation only and does not close the investigation without its stated evidence.
hardwareRequirements: ["windows"]
helpWanted: true
Windows is required to exercise Win32 Job objects, native supervisor cancellation and durable settlement; macOS/Linux cannot validate that boundary. The hosted Windows runner can provide the required validation, and Windows contributors can add controlled native reproductions.
Dispatch rationale: model:heavy for native process/receipt ordering and safety; effort:high for bounded diagnosis across kernel state, persistence and restart evidence.
- Lenguaje dominante
- JavaScript
- Estrellas
- 38
- Forks
- 32
- Merge medio
- 48 min
- PR fusionados (30 d)
- 991
Preparar el entorno
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de atomantic/PortOS
-
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
Los mantenedores suelen responder en 1 día
Todos los issues de atomantic/PortOS
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
solana-foundation/solana-web3.js#4015 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
gramps-project/gramps-web#1604 ·
Los mantenedores suelen responder en 1 día
-
enhancement good first issue hacktoberfest help wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
BinaryBaconLabs/todo-app#18 ·
-
Cache airport lookupsAbiertoenhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
sutantyo/flight-watch#32 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Los mantenedores suelen responder en 1 día