quicksilver / quicksilver/Quicksilver
[Bug]: Too many open files (file descriptors running out)
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
- Searched the issue is not already listed in the Issue List (I've searched it)
- Searched in the Quicksilver Users' Group for questions relating to tech support.
- Downloaded the latest version of Quicksilver for your system and confirmed the issue still persists.
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:
- https://github.com/quicksilver/Quicksilver/issues/3121
- https://github.com/quicksilver/Quicksilver/issues/2974
Steps to reproduce
rm -rf /tmp/QSxcodebuild clean- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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