Title: [Bug]: Terminal daemon spawns full-table ps scans ~1,000/min on macOS, keeping syspolicyd/EDR busy around the clock · Issue #31783 · stablyai/orca · GitHub
Open Graph Title: [Bug]: Terminal daemon spawns full-table ps scans ~1,000/min on macOS, keeping syspolicyd/EDR busy around the clock · Issue #31783 · stablyai/orca
X Title: [Bug]: Terminal daemon spawns full-table ps scans ~1,000/min on macOS, keeping syspolicyd/EDR busy around the clock · Issue #31783 · stablyai/orca
Description: Operating system macOS Orca version 1.4.237 Details Short summary: The terminal daemon (orca-terminal-host running daemon-entry.js) launches processes continuously, mostly full process-table ps scans. On macOS every launch goes through A...
Open Graph Description: Operating system macOS Orca version 1.4.237 Details Short summary: The terminal daemon (orca-terminal-host running daemon-entry.js) launches processes continuously, mostly full process-table ps sca...
X Description: Operating system macOS Orca version 1.4.237 Details Short summary: The terminal daemon (orca-terminal-host running daemon-entry.js) launches processes continuously, mostly full process-table ps sca...
Opengraph URL: https://github.com/stablyai/orca/issues/31783
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"[Bug]: Terminal daemon spawns full-table ps scans ~1,000/min on macOS, keeping syspolicyd/EDR busy around the clock","articleBody":"### Operating system\n\nmacOS\n\n### Orca version\n\n1.4.237\n\n### Details\n\n**Short summary:** The terminal daemon (`orca-terminal-host` running `daemon-entry.js`) launches processes continuously, mostly full process-table `ps` scans. On macOS every launch goes through AppleSystemPolicy/syspolicyd, so the steady rate keeps the security stack busy around the clock and floods the unified log. This is a freshly started daemon, not the stale post-update daemon from #23372.\n\n**Environment**\n\n- macOS 27.0.1 (26A434), Apple silicon, 32 GB\n- Orca 1.4.237, daemon protocol v50, started fresh at boot. `lsof` shows no ShipIt mappings, and there is one \"Malware rejection\" line this boot.\n- Microsoft Defender for Endpoint installed (endpoint security and network extensions), so every exec is also inspected by EDR, as in #12398\n\n**What happened**\n\n1. The kernel logs AppleSystemPolicy lines attributed to the daemon image at about 1,000–1,150 per minute. That rate started within a minute of boot, with 3 live PTY sessions:\n ```\n kernel (AppleSystemPolicy) ASP: Unable to apply provenance sandbox: 268451845, 90900, ~/Library/Application Support/orca/daemon-host/macos/terminal-host-\u003chash>/app.noindex/Orca Terminal Host.app/Contents/MacOS/orca-terminal-host\n kernel (AppleSystemPolicy) ASP: Unable to apply provenance sandbox: 268451845, 90901, ...\n kernel (AppleSystemPolicy) ASP: Unable to apply provenance sandbox: 268451845, 90902, ...\n ```\n The pid increments by one roughly every millisecond within a burst.\n2. During the previous boot, hourly counts of that line ranged from 25,000 to 81,000 between 14:00 and 22:00, which is about 7–22 per second.\n3. syspolicyd logged roughly 150,000 `Unable to initialize qtn_proc` and `dispatch_mig_server returned` errors in a two-hour window of that boot.\n4. Sampling the daemon's children (`pgrep -P \u003cdaemon pid>` in a loop for 10 seconds) found 18 children: 6 were still readable as\n ```\n ps -axo pid=,ppid=,pgid=,tpgid=,stat=,tdev=,lstart=,command=\n ```\n 9 had exited before their arguments could be read, and 3 were the PTY login shells. Sampling misses short-lived processes, so this is a lower bound on the `ps` rate.\n\n**User-visible impact (correlated, not proven causal):** starting and closing sessions gets slower the longer the machine is up, and the daemon log has 9 `shell-ready-timeout` events (15 s) over the past month. The log churn also rotates unified logs fast enough that evidence from previous days is gone.\n\n**How to reproduce**\n\n1. Boot a Mac running macOS 27 and launch Orca 1.4.237 with a few terminals open.\n2. Run `/usr/bin/log stream --predicate 'process == \"kernel\" AND eventMessage CONTAINS \"orca-terminal-host\"'` and watch the rate.\n3. Optionally run `pgrep -P \"$(pgrep -f daemon-entry.js)\"` in a tight loop to see the `ps -axo ...` children.\n\n**Suggestions**\n\n- Lower the polling frequency, or poll only when a session is starting or exiting.\n- Use `libproc` / `sysctl(KERN_PROC)` from the daemon to read process state instead of launching `ps`. That removes the exec, the syspolicyd assessment and the EDR inspection.\n- If polling has to stay, scope it to the daemon's own process groups instead of scanning the whole table with `-ax`.\n\nRelated: #12398 (Helper `ps` polling amplified by EDR, closed), #23372 (stale daemon spawn storm after auto-update).\n","author":{"url":"https://github.com/steveermish","@type":"Person","name":"steveermish"},"datePublished":"2026-10-22T02:37:10Z","url":"https://github.com/stablyai/orca/issues/31783"}
| react-profiling | 0 |
| react-import-map | react,react-dom,react-dom/client,react-dom/profiling,react-is,react-reconciler,react/compiler-runtime,react/jsx-dev-runtime,react/jsx-runtime,scheduler@d5750093facf |
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:f93fbd28-1333-21bc-50b6-bc46fb55fd81 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | 8A1A:5AF4A:A47AE:D4C6F:6AEBDF20 |
| html-safe-nonce | e3f40e554bcbd8f0c5afe00084c5857b45f3fd60fc73d4c10ed4cd78d57b7b02 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI4QTFBOjVBRjRBOkE0N0FFOkQ0QzZGOjZBRUJERjIwIiwidmlzaXRvcl9pZCI6IjIxNjE2MTU1MjY3MTY3NTk4NDAiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ== |
| visitor-hmac | 518472402755c633141afb71cfea7fc411a68d616568e72e03b2ce1dd3fad993 |
| hovercard-subject-tag | issue:5972018343 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/stablyai/orca/31783/issue_layout |
| twitter:image | https://opengraph.githubassets.com/434ce525c08b007c95708a6e982baf3d48cebe25d5bd9bdf45e3b9638dcfe0f7/stablyai/orca/issues/31783 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/434ce525c08b007c95708a6e982baf3d48cebe25d5bd9bdf45e3b9638dcfe0f7/stablyai/orca/issues/31783 |
| og:image:alt | Operating system macOS Orca version 1.4.237 Details Short summary: The terminal daemon (orca-terminal-host running daemon-entry.js) launches processes continuously, mostly full process-table ps sca... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | steveermish |
| hostname | github.com |
| expected-hostname | github.com |
| None | 701f7e3aecc56e7594e73fa7b7e1483af74322a67f7038be453d0feb05e86e77 |
| turbo-cache-control | no-preview |
| go-import | github.com/stablyai/orca git https://github.com/stablyai/orca.git |
| octolytics-dimension-user_id | 127256420 |
| octolytics-dimension-user_login | stablyai |
| octolytics-dimension-repository_id | 1183888342 |
| octolytics-dimension-repository_nwo | stablyai/orca |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 1183888342 |
| octolytics-dimension-repository_network_root_nwo | stablyai/orca |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 12d1048a3491dd63e4193b2937cf72f1c24a2a52 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
| react-app-name | issues |
Links:
Viewport: width=device-width