Commit 60ee6e88 authored by Tails developers's avatar Tails developers

Require a bit less free memory before checking for upgrades.

The general goal is to avoid displaying "Not enough memory available to check
for upgrades" too often due to over-cautious memory requirements checked in
the wrapper.

The specific goal is to avoid having to bump the hardware requirements for
Tails 1.1 (Wheezy) to >> 1 GiB of RAM, as this would 1. not be very nice for
users of oldish hardware; and 2. force us to implement #5502 ("Notify user if
hardware requirements are not met") in time for the 1.1 freeze.

My experiments, documented on #5390, indicate that even lower limits would
probably work. Let's not be too adventurous to start with, though: my plan is to
lower the limit to something that is low enough for the wrapper to dare running
the check for upgrades, but still quite cautious.

Later on, we could try lowering the limits even more, or even drop it entirely:
this would require a mechanism to detect when the check for upgrades fails due
to memory exhaustion, which don't have yet.

Note that, if an automatic upgrade is available, Tails Upgrader checks memory
again, to ensure there's enough free memory to apply the upgrade. This commit
assumes that Tails Upgrader's own check is cautious enough, and that we were not
implicitly relying on the check done earlier, in the wrapper, to ensure upgrade
safety. This assumption might be wrong. My plan is to use the incremental
upgrade to 1.1~rc1 as a test bench to verify this, as I have no time to fully
test this fully right now (still, I successfully applied a small — 50 MiB —
IUK on top of a current build from this very branch, with 126 MiB of free
memory, and 700 MiB total free memory).

The symptom of a failed upgrade due to lack of memory (and then, of a too low
$mem_factor value in Frontend.pm) would be to see the upgrader that simply die
in the middle of the download, or (worse) in the middle of the upgrade. In the
worst case, the resulting (partially upgraded) system may not boot anymore, but
no user data will be affected, and the user can still fix their stick by doing
a full upgrade.
parent c3c6d136
......@@ -9,7 +9,7 @@ export TEXTDOMAIN
TORDATE_DIR=/var/run/tordate
TORDATE_DONE_FILE="${TORDATE_DIR}/done"
INOTIFY_TIMEOUT=60
MIN_MEMFREE=$((200 * 1024))
MIN_MEMFREE=$((125 * 1024))
MIN_TOTAL_MEMFREE=$((500 * 1024))
RUN_AS_USER=tails-upgrade-frontend
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment