Channel QAMania - @qamania - №814
Фантомні поїзди у Швейцарії 🚂👻#bugseverywhereПродовжуємо подорож до цікавих прикладів overflow, на цей раз швейцарською залізницею.Як виявляється, навіть швейцарські годинники залізниці не застраховані від проблем, пов'язаних з переповненням змінних.Поїздам у Швейцарії не дозволено мати рівно 256 осей. Це може здатися абсурдним обмеженням, але справа не в суворих європейських регуляціях чи дивній бюрократії. Причина набагато цікавіша — і це справжній баг!Швейцарська залізнична мережа використовує детектори, розташовані вздовж рейок, для відстеження місцезнаходження поїздів. Ці детектори активуються, коли колесо проходить по рейці, і рахують кількість коліс, щоб надати основну інформацію про поїзд, що щойно проїхав. На жаль, кількість коліс відстежується за допомогою 8-розрядного двійкового числа. Коли це число досягає свого максимуму — 255 (або 11111111 в двійковій системі) — воно скидається до нуля. Тобто будь-який поїзд рівно із 256 осями стає "невидимим" для системи, ніби справжній фантомний потяг.Цікавий також спосіб вирішення цієї проблеми: регламент швейцарських залізниць містить правило, яке забороняє поїздам мати 256 осей. Це правило знаходиться десь між положеннями про навантаження на поїзди та способи, за допомогою яких провідники можуть спілкуватися з водіями. Таке враження, що запитів від людей, які хотіли б додати 256-у вісь, було настільки багато, що залізничники вирішили просто пояснити це в керівництві. Очевидно, що таке бюрократичне рішення виявилося простішим, ніж змінити код системи або ж оновити всі датчики.Отож, це один із тих рідкісних випадків, коли проблему в програмному забезпеченні вирішили адміністративним шляхом. Як вам такий підхід до багфіксу? 😂Знаєте ще цікаві приклади "креативних" виправлень багів? Діліться в коментарях!
2600
24-10-04 11:14