Category:

Проблема 2038-го года

... Оказывается, бывают проблемы не только с линолеумами-миллениумами, но и с другими вроде бы "не круглыми" датами.

Очередная такая подстава возникнет в 2038-м году, если доживём. А точнее, 19 января 2038 года. В этот день произойдет переполнение / сброс 32-битного счётчика в формате UNIX Timestamp. Есличо, можно подробнее посмотреть в педивикии.

Наибольшему риску факапа подвержен всякий встроенный софт (у кого там умный чайник с управлением по Wi-Fi?). Но и всякие другие 32-битные системы включая и популярные СУБД тоже могут оказаться "под ударом".

64-битным ядрам Linux тащем-та пофиг, в 32-битных добавили фикс начиная с версии 5.6. Но!

Лично я взял за привычку форматировать дисковые носители в ext4 с размером inode 128 байт. Во-первых, потому что меньше накладных расходов, метаданные занимают меньше места, больше остаётся под полезные данные. Во-вторых, потому что на 128-ых inode физически невозможны расширенные атрибуты (user_xattr), которые меня бесят. И их потом не надо отключать отдельно.

Только вот нюанс заключается в том, что файловые системы EXT2/3/4 с размером inode 128 байт тоже подвержены проблеме 2038, потому что в них недостаточно места, чтобы записывать 64-битные timestamps.

Конечно, до 2038-го года пока ещё далеко. И я сильно сомневаюсь, что хотя бы один из инсталлированных мной серваков проживет так долго в своем текущем виде, но... пора бы мне таки прекратить форматировать в EXT4 с размером Inode = 128.