Skip to content

XERK-678: fix malformed WinSW descriptor (XML comment '--') that broke every Windows install - #727

Merged
xerhab merged 1 commit into
mainfrom
XERK-678-xmlfix
Sep 8, 2026
Merged

XERK-678: fix malformed WinSW descriptor (XML comment '--') that broke every Windows install#727
xerhab merged 1 commit into
mainfrom
XERK-678-xmlfix

Conversation

@xerhab

@xerhab xerhab commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

The XERK-698 log-path comment in turma-agent.xml has -- inside an XML comment, which is illegal XML. WinSW rejects the descriptor (An XML comment cannot contain '--'), so on every v1.3.33 install the service never registers and sc.exe config then fails 1060. Observed on a real host (MAXAI-WIN): install left no service.

Fix: reword the comment (drop the --), and add a well-formed-XML assertion on the rendered descriptor to test_install_ps1.ps1 case 3 (CI had no XML-validity gate — the root cause it shipped). Mutation-verified: restoring the -- fails the new assertion; the full install suite passes with the fix.

Unblocks Windows installs on the next release. Found during XERK-678 real-host validation.

… the launcher supervisor test

The XERK-698 log-path comment in turma-agent.xml contained `--` INSIDE an XML
comment (`...turma-agent.out.log) -- NOT the`), which is illegal XML. WinSW
refuses to load the descriptor ("An XML comment cannot contain '--'"), so on
every v1.3.33 install the service never registers and the follow-on
`sc.exe config` fails 1060. Observed on a real host: install left NO service.

CI never caught it because nothing validates the descriptor as XML — the render
test only checked placeholder substitution. Fix: reword the comment, and add a
well-formed-XML assertion on the RENDERED descriptor to test_install_ps1.ps1
case 3 (mutation-verified: restoring `--` fails it).

Also deflake the launcher suite's "a second launch leaves exactly one
supervisor" case: the second launch reaps the prior supervisor before starting
its own, so the count transiently passes through 0; the old `Wait-For{>=1};
sleep; count` raced that gap and read 0 on a loaded CI runner (it flaked #727
twice). Wait until it SETTLES at exactly one, then confirm it stays one — which
still catches the real duplicate-supervisor bug (persists at 2, never settles).
@xerhab
xerhab merged commit 0ce3d87 into main Sep 8, 2026
4 checks passed
@xerhab
xerhab deleted the XERK-678-xmlfix branch September 8, 2026 18:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant