Colin Young
3149fa4b99
Terminate timed-out Git process trees ( #36793 )
...
## Why
Timing out a Git metadata command must not leave helper processes running after
the command wrapper exits.
## What changed
- Run Git metadata commands in a dedicated process group on Unix and a Job
Object on Windows so timeout cleanup terminates their full process trees.
- Start Windows commands suspended, assign them to the Job Object, and then
resume them so immediate descendants cannot escape containment.
- Preserve descendants when a Git command completes normally, and retain the
existing direct-spawn fallback if Windows Job Object setup fails.
## Testing
Added cross-platform regression tests for cleanup both while the command wrapper
is running and after it exits, plus Windows coverage for immediate-child Job
Object containment.
GitOrigin-RevId: 351851708e23ff06b89fe1894bd09a3558f67293
2026-08-03 20:00:49 +00:00
..
2026-07-29 13:53:15 +00:00
2026-07-23 19:19:35 +00:00
2026-07-21 22:44:43 +00:00
2026-08-03 10:19:04 +00:00
2026-07-29 13:53:15 +00:00
2026-08-03 19:51:43 +00:00
2026-08-01 00:38:10 +00:00
2026-07-21 08:50:21 +00:00
2026-08-02 21:01:04 +00:00
2026-07-30 19:47:30 +00:00
2026-08-01 00:38:10 +00:00
2026-07-29 18:29:26 +00:00
2026-07-22 02:19:45 +00:00
2026-07-21 08:59:41 +00:00
2026-07-30 21:49:53 +00:00
2026-07-23 01:00:35 +00:00
2026-08-03 18:51:46 +00:00
2026-07-30 21:49:53 +00:00
2026-08-03 10:27:19 +00:00
2026-07-21 08:28:51 +00:00
2026-07-30 20:24:29 +00:00
2026-07-30 20:24:29 +00:00
2026-07-30 20:24:29 +00:00
2026-07-31 18:32:28 +00:00
2026-08-03 19:51:43 +00:00
2026-07-30 21:49:53 +00:00
2026-07-07 01:12:24 +00:00
2026-08-03 18:51:46 +00:00
2026-08-03 18:51:46 +00:00
2026-07-23 01:00:35 +00:00
2026-08-03 11:39:51 +00:00
2026-08-03 19:51:43 +00:00
2026-07-31 20:17:25 +00:00
2026-08-03 18:51:46 +00:00
2026-08-03 17:29:42 +00:00
2026-07-31 18:26:04 +00:00
2026-08-01 06:02:48 +00:00
2026-07-30 19:23:33 +00:00
2026-07-20 06:13:29 +00:00
2026-08-03 18:51:46 +00:00
2026-07-31 16:40:53 +00:00
2026-07-30 20:24:29 +00:00
2026-07-28 17:51:37 +00:00
2026-07-31 21:37:56 +00:00
2026-07-23 23:35:29 +00:00
2026-08-03 20:00:49 +00:00
2026-08-03 17:29:42 +00:00
2026-07-28 19:58:25 +00:00
2026-07-31 04:20:56 +00:00
2026-08-03 17:01:37 +00:00
2026-07-22 04:17:34 +00:00
2026-08-02 21:01:04 +00:00
2026-07-31 14:40:40 +00:00
2026-08-03 00:30:57 +00:00
2026-07-17 20:52:42 +00:00
2026-08-03 19:30:40 +00:00
2026-07-23 00:02:15 +00:00
2026-08-03 19:51:43 +00:00
2026-08-03 18:25:28 +00:00
2026-07-30 04:26:36 +00:00
2026-07-29 23:58:10 +00:00
2026-08-02 02:29:45 +00:00
2026-07-22 19:14:11 +00:00
2026-08-03 19:51:43 +00:00
2026-07-31 11:23:46 +00:00
2026-07-29 18:29:26 +00:00
2026-07-30 21:09:15 +00:00
2026-07-30 22:45:04 +00:00
2026-07-23 21:50:17 +00:00
2026-07-29 19:49:01 +00:00
2026-08-03 00:30:57 +00:00
2026-07-24 00:10:22 +00:00
2026-07-31 20:49:08 +00:00
2026-08-03 19:51:43 +00:00
2026-08-03 19:30:40 +00:00
2026-08-03 20:00:49 +00:00
2026-07-22 16:18:08 +00:00
2026-07-24 00:16:42 +00:00
2026-07-27 18:37:11 +00:00
2026-07-09 17:31:44 -07:00
2026-08-03 20:00:49 +00:00
2026-08-03 18:51:46 +00:00
2026-07-28 20:49:22 +00:00
2026-07-11 03:27:51 +00:00
2026-07-29 13:53:15 +00:00
2026-07-30 04:26:36 +00:00