Commit e9e4fc6
[Rust] Report a refused kill instead of waiting on a live process
`start_kill` failures were logged and swallowed. That is right when the
child is already gone — the reap then reports its real status — but wrong
when the OS refuses the signal: nothing will make that process exit, so
the reaper would poll forever, every `ForcedShutdown::wait()` would park
indefinitely, and `force_stop()` would report success.
Distinguish the two with `signal_refusal`, which treats a failed kill as
benign only when the child has actually exited. A genuine refusal is
published as a definitive error *before* the reaper starts, so waiters
observe it rather than blocking. Ownership is unchanged: the reaper still
takes the child and still overwrites the error with the truth if the
process does go away, so a refusal degrades to an observable error rather
than to a silent success or a hang.
The decision is a pure function so it can be tested directly; fabricating
a real refusal would mean signalling a process the test does not own.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 0f9d5ac7-9999-4f37-82b3-a5533bfbc1f61 parent 0601c94 commit e9e4fc6
1 file changed
Lines changed: 58 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
134 | 134 | | |
135 | 135 | | |
136 | 136 | | |
137 | | - | |
138 | | - | |
139 | | - | |
140 | | - | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
141 | 141 | | |
142 | 142 | | |
143 | | - | |
| 143 | + | |
144 | 144 | | |
145 | 145 | | |
146 | 146 | | |
147 | 147 | | |
148 | 148 | | |
149 | 149 | | |
150 | 150 | | |
151 | | - | |
| 151 | + | |
152 | 152 | | |
153 | 153 | | |
154 | 154 | | |
155 | 155 | | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
156 | 167 | | |
157 | 168 | | |
158 | 169 | | |
| |||
241 | 252 | | |
242 | 253 | | |
243 | 254 | | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
244 | 273 | | |
245 | 274 | | |
246 | 275 | | |
| |||
725 | 754 | | |
726 | 755 | | |
727 | 756 | | |
| 757 | + | |
| 758 | + | |
| 759 | + | |
| 760 | + | |
| 761 | + | |
| 762 | + | |
| 763 | + | |
| 764 | + | |
| 765 | + | |
| 766 | + | |
| 767 | + | |
| 768 | + | |
| 769 | + | |
| 770 | + | |
| 771 | + | |
| 772 | + | |
| 773 | + | |
| 774 | + | |
| 775 | + | |
| 776 | + | |
| 777 | + | |
| 778 | + | |
| 779 | + | |
728 | 780 | | |
729 | 781 | | |
730 | 782 | | |
| |||
0 commit comments