Skip to content

planning: confirm round.sh stop leaves no watch.sh running on Windows Git Bash #5723

Description

@kyle-sexton

Refs #5569

Problem

Item 15 of #5569 (batch A comment) has the acceptance criterion: "After round.sh stop, no watch.sh for that data dir is still running within 10 s (Windows Git Bash included)." The original report was a watch.sh and its curl long-poll left running after round.sh stop on Windows Git Bash, killed by PID.

PR #5722 ends the watcher on POSIX only. end_watcher in plugins/planning/surface/round.py returns early when os.name != "posix", because the pid a Git Bash watch.sh records ($$) is not a native Windows PID and could name any process. On Windows the watcher is meant to end through its refused-poll path: round.sh stop removes the env file, the next poll is refused, and watch.sh exits 3 with "the interview server was stopped (round.sh stop): not re-arming". plugins/planning/surface/README.md says that path has not been exercised on Windows Git Bash.

This needs a Windows host with Git for Windows and an operator run. A Linux or WSL session cannot produce the evidence.

Acceptance criteria

  • On Windows Git Bash, after round.sh stop, no watch.sh for that data dir and no curl long-poll it started is still running within 10 s, and the watch.sh process exited 3 with the "the interview server was stopped" message (the refused-poll path).
  • bash plugins/planning/surface/watch.test.sh run on that host passes, including "round.sh stop ended the data dir's watch.sh" and "watch.sh exits 3 at once on a refused poll after a clean stop".
  • The result (host, Git for Windows version, commands, output) is posted on this issue. If it passes, a PR that closes this issue replaces the README sentence "That path has not been exercised on Windows Git Bash." with the verified behavior. If it fails, the failing output is the repro for a fix: a stop the lease can trust on Windows, or a watch.sh that ends sooner, with the POSIX cases in watch.test.sh still green.

Operator steps

In Git Bash, from plugins/planning/surface, with d set to a scratch data dir:

bash round.sh --dir "$d" ensure-running --port 0
bash watch.sh "$d" >watch.out 2>watch.err &
wpid=$!
ps -ef | grep -E 'watch\.sh|curl'
bash round.sh --dir "$d" stop
sleep 10
ps -ef | grep -E 'watch\.sh|curl'
wait "$wpid"; echo "exit $?"; cat watch.err

Related

Parent: #5569 (item 15, third acceptance criterion). POSIX path: PR #5722.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    priority: lowNice-to-have, cosmetic, or speculative; opportunistic.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions