Skip to content

Say what ending a process sets off, and look at the process again before ending it - #35

Merged
donislawdev merged 1 commit into
mainfrom
fix/stability-package-b2
Sep 30, 2026
Merged

donislawdev merged 1 commit into
mainfrom
fix/stability-package-b2

Conversation

@donislawdev

Copy link
Copy Markdown
Owner

Package B2 of the stability report: a forced stop says what ending the process sets off, and looks at the process once more before ending it.

What changes for a user

  • Refused: a process Windows marks critical, a service with "restart the computer" anywhere in its recovery actions, and recovery actions or a critical flag that cannot be read. Ending such a process takes the whole machine down.
  • Warned in the preview: a service Windows starts again by itself after the ending, a recovery action that runs a program, and a recovery action of a kind the tool cannot name. New warning kinds in the plan JSON: recoveryRestarts, recoveryRunsProgram, recoveryUnnamed.
  • Just before the ending: the process is read again. A service that moved into it, or a running service outside it that began to depend on something inside it, means nothing is ended and the step says why.
  • After the ending: an entry seen in a new process is reported at once as ended and started again ("outcome": "failed", errorCode 0), instead of after the whole limit as timedOut.

How it was checked

  • Recovery actions read on this machine against sc.exe qfailure - 312 of 312 services agree.
  • A test service on a throwaway machine, before and after: with a restart at 0 ms the ending step timed out after 60 096 ms and now reports in 71-102 ms. With a restart at 3000 ms the step succeeds as before and the preview now says the service will come back.
  • bws kill --dry-run on this machine: Spooler and Schedule get the new warnings, RpcSs and mpssvc are refused as critical processes.
  • Narrow test run green in the core, command line, window, architecture and integration projects. 63 of 63 mutation entries caught.

Not checked

  • The refusal for a changed process on a real service manager (the command line has no gap between preview and run to change it in) - covered by the test double only.
  • Restart the computer as a recovery action, live.
  • The window on a screenshot. The full gate.

🤖 Generated with Claude Code

…ore ending it

A forced stop now reads what Windows does once the process is gone. A process
Windows marks critical, or a service with "restart the computer" anywhere in
its recovery actions, is refused - ending it takes the machine down - and so
are recovery actions or a critical flag that cannot be read. A service Windows
starts again by itself, one whose recovery runs a program, and a recovery
action of a kind the tool cannot name are warned about in the preview
(recoveryRestarts, recoveryRunsProgram, recoveryUnnamed - new warning kinds).

The step that ends the process reads who lives in it just before it does, and
ends nothing if a service moved into it or a running service outside it began
to depend on something inside it since the preview. After the ending, an entry
seen in a new process is reported at once as ended and started again, instead
of after the whole limit as having run out of time.

Measured on a throwaway machine with a test service before and after: with a
restart at 0 ms the step used to time out after 60 s over a process that died
at once, and now reports it in about 0.1 s. The flag that widens recovery
actions to polite stops changes nothing about an ending, so it is not read.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Sep 30, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Repository UI (base), Organization UI (inherited)

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 29b45c74-7852-4c8a-b175-48461591a24e


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@donislawdev
donislawdev merged commit 71ffa25 into main Sep 30, 2026
8 of 9 checks passed
@donislawdev
donislawdev deleted the fix/stability-package-b2 branch September 30, 2026 07:23
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