Skip to content

fix: replace raw substring match with real markers when detecting concore processes - #581

Open
bhuvan-somisetty wants to merge 1 commit into
ControlCore-Project:devfrom
bhuvan-somisetty:fix/stop-status-process-match
Open

bhuvan-somisetty wants to merge 1 commit into
ControlCore-Project:devfrom
bhuvan-somisetty:fix/stop-status-process-match

Conversation

@bhuvan-somisetty

Copy link
Copy Markdown

Fixes #580

concore_cli/commands/stop.py and status.py were deciding whether a process was a concore process with a raw substring check, "concore" in cmdline_str.lower(). Anything launched from inside a folder that just happens to have "concore" somewhere in its path (the default clone directory name for this repo, for one) matched that, so concore stop could end up force killing processes that have nothing to do with concore.

Changes:

  • new concore_cli/commands/_process_match.py with is_concore_process(), used by both status.py and stop.py instead of each having its own copy of the check
  • a process now only counts as a concore process if the cmdline references the generated concorekill.bat by filename, or its actual working directory contains the runtime marker files mkconcore.py writes into every generated study (concore.iport plus concore.py/concoredocker.py), checked via proc.cwd()
  • added tests/test_process_match.py, including a couple of tests that reproduce the original bug directly (a process launched from a folder literally named concore no longer matches)

Scope is just the process discovery step in these two commands, nothing about the actual kill logic (taskkill/terminate/kill) changed.

Verified with:
pytest tests/ -q (197 passed, 7 skipped, no failures)

concore stop / concore status flagged any process as a concore process
just because "concore" appeared anywhere in its cmdline. That matches
anything run from a directory that happens to be named "concore"
(the default clone directory name for this repo), which has nothing to
do with a real concore node and would get force killed on the next
concore stop.

Match is now based on the generated concorekill.bat filename, or on the
process's actual working directory containing the runtime marker files
mkconcore.py writes into every generated study (concore.iport plus
concore.py/concoredocker.py), instead of a plain text search.

Fixes ControlCore-Project#580
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