09/04/2012, 11:59 PM
From the topics on the forums, the "No Space Left" error isn't uncommon. I got hit with it recently, and I decided to try to get to the bottom of it.
The typical case where you get the error is when the internal USB media partition is filled up. However, the error also occurs if the partition is not filled up. Some digging reveals that /var is accessed when an app is being downloaded. Specifically it is used to temporarily store the app's icon for display on the Launcher until the app is installed. The problem lies here. /var is a fairly small partition at 64MB, but usually only sees 20% utilization. If for some reason the partition fills up and the download manager is unable to download the icon, the installation process fails completely. It's a poor excuse for aborting, and the message that gets displayed is even poorer.
So, the fix? One was mentioned earlier around WOSN to remove the download history database. That makes sense as it accumulates as you download stuff onto your device. But when that fails, you can remove the context upload data in /var/context, and clear your browser cache. If you use wTerm or similar, check /var/home for files that aren't supposed to be there. My folly was forgetting to change the working directory before downloading the soundtrack from the recent Indie Royale bundle.
You can check how much space you have free on /var by typing this command:
Suggestion for WebOS Ports team/other interested parties: add a separate message for /var fillups and automatically handle cleanup of /var.
df | grep var | more