Cam moten
9daa491f7c
Harden local MCP server process tree cleanup ( #37366 )
...
## Why
A local stdio MCP server can exit while its descendants remain alive. Cleaning up
only the server process can therefore leak processes after client shutdown.
## What changed
- Contain locally launched MCP servers in non-breakaway Windows job objects and
terminate the job during shutdown so descendants exit with the server.
- Preserve compatibility when job creation or assignment is unavailable by
retrying without containment and terminating an owned process handle instead.
- Use the process-group member fallback when terminating piped processes on
macOS.
## Testing
- Cover descendant cleanup and breakaway prevention for both local MCP protocol
modes on Windows.
- Cover the Windows nested-job assignment fallback and verify the suspended
process resumes before handle-based termination.
GitOrigin-RevId: 33d3cc122de8f7ce0ae69a649b12ea0ff64b7c6f
2026-08-07 03:34:49 +00:00
..
2026-07-29 13:53:15 +00:00
2026-06-09 12:48:04 -07:00
2026-07-23 19:19:35 +00:00
2026-07-21 22:44:43 +00:00
2026-08-06 02:30:18 +00:00
2026-07-29 13:53:15 +00:00
2026-08-07 03:30:29 +00:00
2026-08-04 15:23:43 +00:00
2026-07-21 08:50:21 +00:00
2026-08-07 03:30:29 +00:00
2026-07-30 19:47:30 +00:00
2026-08-04 15:23:43 +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-06-11 18:16:39 -07:00
2026-05-08 04:07:59 +00:00
2026-07-30 21:49:53 +00:00
2026-06-13 21:43:39 -07:00
2026-08-04 22:23:40 +00:00
2026-08-07 01:26:42 +00:00
2026-08-05 18:09:26 +00:00
2026-08-05 18:09:26 +00:00
2026-07-21 08:28:51 +00:00
2026-06-11 18:16:39 -07:00
2026-08-05 16:09:01 +00:00
2026-08-05 16:09:01 +00:00
2026-08-06 03:15:08 +00:00
2026-08-05 16:09:01 +00:00
2026-08-05 20:03:13 +00:00
2026-07-30 21:49:53 +00:00
2026-07-07 01:12:24 +00:00
2026-06-15 20:10:53 -07:00
2026-08-07 00:17:46 +00:00
2026-08-04 22:58:02 +00:00
2026-08-07 03:30:29 +00:00
2026-08-07 00:23:38 +00:00
2026-08-03 11:39:51 +00:00
2026-08-07 03:30:29 +00:00
2026-08-04 16:28:46 +00:00
2026-08-06 03:53:05 +00:00
2026-08-05 23:23:21 +00:00
2026-06-05 15:41:13 -07:00
2026-08-05 18:09:26 +00:00
2026-08-07 00:32:59 +00:00
2026-07-30 19:23:33 +00:00
2026-07-20 06:13:29 +00:00
2026-08-07 00:42:06 +00:00
2026-08-04 21:45:28 +00:00
2026-08-07 01:41:54 +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-05-28 23:09:55 -07:00
2026-08-05 20:23:35 +00:00
2026-08-07 03:30:29 +00:00
2026-08-04 22:18:09 +00:00
2026-07-31 04:20:56 +00:00
2026-06-12 19:52:49 +00:00
2026-08-07 01:30:07 +00:00
2026-07-22 04:17:34 +00:00
2026-08-07 02:30:18 +00:00
2026-08-06 03:11:42 +00:00
2026-08-03 00:30:57 +00:00
2026-07-17 20:52:42 +00:00
2026-08-05 14:20:59 +00:00
2026-08-04 22:07:56 +00:00
2026-08-05 20:03:13 +00:00
2026-08-06 03:57:10 +00:00
2026-07-30 04:26:36 +00:00
2026-08-07 00:28:32 +00:00
2026-08-05 04:54:33 +00:00
2026-05-25 17:26:10 -03:00
2026-07-22 19:14:11 +00:00
2026-08-07 01:36:22 +00:00
2026-08-07 03:34:49 +00:00
2026-08-06 03:11:42 +00:00
2026-08-06 03:11:42 +00:00
2026-07-30 22:45:04 +00:00
2026-05-26 20:59:47 -07:00
2026-08-04 15:14:57 +00:00
2026-07-23 21:50:17 +00:00
2026-06-25 13:56:08 -07:00
2026-08-05 23:23:21 +00:00
2026-08-07 01:26:42 +00:00
2026-08-04 03:49:53 +00:00
2026-08-04 22:23:40 +00:00
2026-08-07 01:26:42 +00:00
2026-08-05 20:03:13 +00:00
2026-08-07 02:50:32 +00:00
2026-08-07 03:34:49 +00:00
2026-07-22 16:18:08 +00:00
2026-06-13 21:43:39 -07: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-07 01:26:42 +00:00
2026-08-06 03:11:42 +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
2026-06-04 09:16:03 -07:00
2026-05-26 20:59:47 -07:00