quicksilver / quicksilver/Quicksilver

[Bug]: Too many open files (file descriptors running out)

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

Nobody has claimed this yet.

Dominant language
Objective-C
Stars
2.9k
Forks
291
PR merge metrics
No merged PRs in 30d

Description

Before submitting your bug report, please confirm you have completed the following steps
Bug description

We've had this mentioned in a few other issues, but I wanted to created one to focus on this specifically.

Over the last few months, my first run of a dev build in XCode usually crashes either due to an assertion error or null pointer dereference related to running out of file descriptors. If I re-run a couple times (without clearing cache) it usually catches up and then runs normally.

(The emojis plugin is where I often get the nil data pointer crash.)

Some LLM consultation looks like our dependency on VDKQueue is implicated, and it sounds like we may be able to use a native Apple recursive file / directory watcher as an alternative. Alternatively, I wonder about a semaphore for opening and a sweep to ensure file descriptors are closed as soon as possible upon the initial catalog scan could be helpful.

Related:

Steps to reproduce
  1. rm -rf /tmp/QS
  2. xcodebuild clean
  3. run
Expected behavior

QS runs without crashing even from an empty cache

MacOS Version

macos26, macos27

Quicksilver Version

2.6.0

Relevant Plugins

emoji

Crash Logs or Spindump

Will update with a crash log

Screenshots

No response

Additional info

No response

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 crash with rm -rf /tmp/QS, xcodebuild clean, and a fresh run. Read the VDKQueue usage and the initial catalog scan, then compare related issues #3121 and #2974; done means Quicksilver starts without crashing from an empty cache and file descriptors are not exhausted.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.