Long running process not ended on SIGINT, Rust 1.66+ (Mac M1 Ventura?)
MathieuTricoire opened this issue · 3 comments
Hi!
I'd like to report what appears to be an issue with cargo-watch
version 8.3.0 installed with Rust version 1.66+.
It seems that long running processes created by the binary are not terminated when receiving an interruption or termination signal. (Tested on a MacBook Pro M1 with Ventura 13.1)
I have created a repo to reproduce the error: MathieuTricoire/cargo-watch-signal-issue but any long running process should do the job.
For your information, it works fine with Rust 1.65, so maybe it's related to changes in Rust 1.66. I have no idea but maybe the following pull request could be relevant: rust-lang/rust#101077
Changelog: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1660-2022-12-15
Steps to reproduce the issue
Install cargo-watch
with Rust 1.66+ toolchain:
cargo +1.66 install --force cargo-watch
Launch the cargo-watch
command:
cargo watch --debug -x run
Stop the process (either with ctrl-c on the ongoing cargo-watch
process or pkill -SIGTERM cargo-watch
)
You can see that the signal has been sent according to the logs DEBUG - Sending signal SIGTERM to process group id=1234
but the processes in group 1234
have not been terminated.
Thank you for your help.
Oh wow that might actually explain a few other bugs reported. Why the heck did they change a default behaviour
Fixed in 8.4.0
Nice! Thank you @passcod