Repository navigation
Conversation
|
🎉 Welcome aboard, @luqq-md! Thank you for your first pull request in concore. Please ensure that you are contributing to the dev branch. Your contribution means a lot to us. We'll review it shortly. Please ensure you have reviewed our: If you have any questions, feel free to ask. Happy coding! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #652
WHAT WAS THE ISSUE?
I was exploring the Windows shutdown process and noticed that some Python and Java controllers were not being stopped properly.
After investigating, I found that the generated concorekill.bat script was checking whether a process's command line contained the word concore. However, controllers launched with normal Python or Java commands don't necessarily have that in their command line.
Because of this, valid controller processes were being skipped during shutdown.
WHAT DID I CHANGE?
I updated the way Python and Java register their processes. Instead of storing only the PID, they now also store the process start time.
I added a shared PowerShell helper (
concorekill.ps1) that checks whether the registered PID and start time match the actual process before terminating it. This also helps prevent accidentally killing an unrelated process if Windows reuses a PID.I also updated the Windows study generation scripts to include this helper in Python and Java node directories.
For older PID-only registry entries, the existing validation approach is retained for backward compatibility.
Failed cleanup attempts are preserved in the registry so they can be retried
TESTING
I tested the changes on Windows:
IMPACT
Windows can now identify and stop registered Python and Java controllers more reliably, while reducing the risk of terminating unrelated processes.