myxce/src/tools
Rongsong Shen 6dd70f1091
feat(build): no fork in multi-threaded XCE processes, enforced by check-no-fork
Design constraint (tech.md "Process Creation"): the controller, scheduler,
xcecd and anything that starts libxce threads never call fork, vfork,
forkpty, daemon, system, popen or uv_spawn; children start with posix_spawn()
or a systemd unit. A process proven single-threaded may fork, marked
/* xce-fork-ok: <why> */. Tests, harness, autoscaler (not finalized; bug-1969)
and the Go frontend are out of scope.

- scripts/check-no-fork.py scans src/{controller,scheduler,lib,worker}
  (comment/string/#if 0 aware); runs as meson test "no-fork rule" in the
  lib/controller/scheduler/worker suites and in the pre-commit hook.
- worker: drop xcecd's unused fork-based worker start paths
  (process_manager_start_process, process_manager_start_worker; xcecd
  starts xcecd_worker over D-Bus) and a dead #if 0 daemonize fork.
- xcecd_worker's fork/uv_spawn/system calls are marked: its call graph
  from main(), callbacks included, reaches no pthread_create or libuv
  thread-pool call.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-10 13:35:52 +00:00
..
appimage save works 2026-03-04 18:18:53 +08:00
build-lock.sh fix(tools): one xce-build.sh run per build dir at a time (bug-1604) 2026-09-30 03:43:48 +00:00
deploy-ha.sh feat(controller-peers-env-fallback): pin the generated xceadmin wrapper to its own deployment (task 5.1) 2026-10-03 08:04:03 +00:00
go_build build: make Go and Python builds fully offline (hermetic Nix build) 2026-09-03 12:38:49 +08:00
test-build-lock.sh fix(tools): one xce-build.sh run per build dir at a time (bug-1604) 2026-09-30 03:43:48 +00:00
test-build-version-regression.sh test(build-time-versioning): add motivating-incident regression script 2026-08-20 15:14:21 +00:00
test-commit-durability.sh fix: repoint stale controller/xce_test path references to harness/xce_test 2026-09-14 11:49:01 +00:00
test-dirty-fingerprint-distinguishability.sh test(dirty-content-fingerprint): add dev-loop distinguishability regression 2026-08-21 09:56:12 +00:00
test-dirty-fingerprint-nix-production-path.sh test(dirty-content-fingerprint): add Nix production path fingerprint check 2026-08-21 11:12:15 +00:00
test-dirty-fingerprint-startup-log-unchanged.sh fix: close controller-peers-env-fallback validation gaps (bug-1909..1912) 2026-10-03 13:06:58 +00:00
test-heartbeat-tolerance.sh feat(admin-config-tool): drop ha/data/ entirely, match real client TLS 2026-07-22 14:50:51 +00:00
test-version-startup-consistency.sh fix: close controller-peers-env-fallback validation gaps (bug-1909..1912) 2026-10-03 13:06:58 +00:00
test-xceadmin-build-install-version.sh test(build-time-versioning): add xceadmin end-to-end build/install/version cycle check 2026-08-20 17:02:01 +00:00
verify-controller-peers-env.sh fix: close controller-peers-env-fallback validation gaps (bug-1909..1912) 2026-10-03 13:06:58 +00:00
xce-build.sh feat(build): no fork in multi-threaded XCE processes, enforced by check-no-fork 2026-10-10 13:35:52 +00:00