Avoid The Dreaded "vnode" Leak


Some users have been reporting that, recently, while using WinterBoard, it is hard to keep many iOS applications running in the background: after you run more than a few, they are killed.

This issue did not correlate with new versions of WinterBoard (downgrading did not help), but it did clear itself up if you uninstalled WinterBoard. It did not require any themes to be active.

I have managed to track this down to leaking a key resource, something called a "vnode", of which Apple, by default, only allocates 1250; this bug is a complex multi-component overlap.

In this case, when using iOS 6.1 (maybe also 6.0, but maybe not), with a 0.9.400x version of Substrate, and virtually any version of WinterBoard, you will probably encounter this issue.

After spending a couple days looking into this reported issue with some custom vnode debugging tools I wrote (which required getting some help from planetbeing, due to kASLR), I have determined WinterBoard is the correct place to fix this issue, and have done so there in 0.9.3911.