Question

I was trying to determine why all apps were crashing on a phone when I looked at the storage and saw it was completely at-capacity. I tried restarting and exiting all background tasks to no avail. The entire 32GB of storage was shown as being used, and as soon as we deleted an app that took up a sizeable chunk of disk, everything started working again. And many people have the same issue.

This, however, goes against my intuition as to memory management coming from a computer science background — iOS does not swap pages to the disk, so we wouldn't need to reserve space on disk for this. In addition, it's not an issue with RAM as exiting all running background apps didn't change anything, nor did restarting the phone.

I understand that the kernel would kill processes if it were an affair with RAM contention and resident pages in RAM getting too high, but that's not the case here. So my question is then, if there is no swapping to disk, and it's not a RAM affair, what is the most likely cause for apps to all completely crash like this without even starting up? I'm assuming they're not all trying to write to disk on startup...

Was it helpful?

Solution

This is a design decision that is made to handle situations where operators of the device choose to ignore low storage space warnings or are not present to see them and react appropriately.

From your comments, you described that the system works well enough to let you inspect storage, choose to delete apps and data and continue working - that’s the case in my experience. The system sacrifices the ability to launch new apps, install updates and do other non-critical functions when storage space is close to empty.

In most cases, the system is able to send a sequence of disk space “warning” and disk space “critical” signals to the OS, the first party apps and third party apps requesting they purge any cached storage, but in the end, you can overload the filesystem and this is the last ditch attempt to get the device in the hands of someone that will realize that files or apps need to be deleted to resume normal operations.

For the nerds that program, there are entire API and processes around this to let an app know how much space is available for opportunistic storage and critical storage:

One of the better articles on this is:

In the end, it’s up to the programmer of an app if they want to check and let you know they may stop working or if they want to be simple in design and let you figure out if your device is full in other manners. Neither decisions is completely right or completely wrong. The OS will nag you about low storage, so most apps let that handle education these days and they just postpone large downloads when things get tight.

Licensed under: CC-BY-SA with attribution
Not affiliated with apple.stackexchange
scroll top