The weird part of installing apps is sometimes it gets stuck in a perma-fail mode and could no longer be updated. After digging around for a while, I came across the relevant log line: smdl2tmp1
I scratched my head for hours, only to realize that this problem is caused by a temporary file called smdl2tmp1.asec that is used during installations of apps that are movable to SD but for some reason does not get deleted, especially when you run out of space. Because of this, the system cannot create it and treats it as an error, rather than recognizing it as stale and deleting it.
Any solution? Yes, read below to uncover the answers.
Step 1: Manually delete smdl2tmp1.asec. It could reside at 2 locations:
1./sdcard/.android_secure – this is an invisible folder on your SD card, which you can access with any file manager, like ASTRO
2./mnt/secure/asec/ – access to this folder requires root and a program like Root Explorer
Step 2: Look for smdl2tmp1.asec in these folders and delete any ones you see. Deleting these temporary files seems to be a safe enough operation. Once all deletions are complete, update problems should go away
Google has been slammed for not fixing this problem, and requiring users to look for random files on their phones, which I completely agree. But, at least my phone is healthy again, and hope yours is too, if you were seeking for a solution.

