From 51f2ebbd1323f64011b7845ec95c90da33b45a89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Sch=C3=A4fer?= Date: Mon, 10 Jan 2022 17:32:11 +0100 Subject: [PATCH] Handle the correct exception when formatting extremely high amounts of bytes Found in production. Yes really. Due to some borked LXC integration, my snikket host reports ``` MemTotal: 9007199254740991 kB MemFree: 9007199254690591 kB MemAvailable: 9007199254690591 kB ``` That is more than 1024 TiB, so it tries to go further up in the scale, which then causes a Guru Meditation because of the uncaught IndexError. --- snikket_web/infra.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/snikket_web/infra.py b/snikket_web/infra.py index c17f01b..c5e9ef0 100644 --- a/snikket_web/infra.py +++ b/snikket_web/infra.py @@ -60,7 +60,7 @@ def format_bytes(n: float) -> str: try: unit = BYTE_UNIT_SCALE_MAP[scale] factor = 1024**scale - except ValueError: + except IndexError: unit = "TiB" factor = 1024**4 if factor > 1: