github / github/app

Suspected RootDomainUserClient leak in GitHub Copilot for macOS

Open
#3,632 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
No language data
Stars
2.1k
Forks
157
PR merge metrics
No merged PRs in 30d

Description

Short summary

Suspected RootDomainUserClient leak in GitHub Copilot for macOS

Affected version or release

1.1.15 (com.github.githubapp, executable github)

Installation context

Local installation in /Applications/GitHub.app; macOS 26.6.2 (25G83), Apple silicon

What happened?

After approximately two days, the github process owned 871 of 1,019 system-wide RootDomainUserClient objects. Quitting the app immediately reduced the total from 1,019 to 148.

At 1,019 clients, a standalone probe showed IOServiceOpen(IOPMrootDomain) blocking for 15 seconds and returning 0xe00002c7 (kIOReturnUnsupported). A separate process therefore also failed to open the service during the incident.

The measurements indicate a suspected unbounded power-management client leak. The executable imports IOServiceOpen and IOServiceClose; one hypothesis is that a path opens IOPMrootDomain without closing it, but the exact allocation path and triggering workflow are not yet confirmed.

Steps to reproduce
  1. Launch the app and note the github process PID.

  2. Periodically run:

    ioreg -r -c RootDomainUserClient -l \
      | grep -o '"IOUserClientCreator" = "pid [0-9]*, github"' \
      | sort | uniq -c
    
  3. Observe the client count associated with the process.

  4. Quit the app and confirm those clients are released.

Expected behavior

Power-management clients should remain bounded and be released when no longer needed.

Additional context
  • Observed before quit: 1,019 total / 871 owned by github
  • Observed after quit: 148 total

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the reported growth with the provided ioreg probe while monitoring the github process, then compare counts after quitting the app. Trace the app's power-management client usage and identify the allocation path; done means clients remain bounded during use and are released when no longer needed.

Written by the indexing model from the issue text.

Assessment

Tech stack
macos
Domain
desktop, operating-systems, performance
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.