Discourse — широко используемая платформа для обсуждений, которая в настоящее время поддерживает более 22 000 онлайн-сообществ. Резервное копирование сайта было нарушено из-за GIF-файла размером 1,6 Мбайт, который был скопирован пользователями 246 173 раза, что превысило лимит файловой системы Linux ext4 на жёсткие ссылки. В результате анимация танца радости Рейчел из сериала «Друзья» в исполнении Дженнифер Энистон (Jennifer Aniston) заняла в бэкапе 377 Гбайт.

GIF с танцем Рейчел из «Друзей» разросся до сотен гигабайт и сломал бэкапы Discourse

Обзор Apple MacBook Neo: удивительно хороший ноутбук с процессором от iPhone

GIF с танцем Рейчел из «Друзей» разросся до сотен гигабайт и сломал бэкапы Discourse

Гид по выбору OLED-монитора в 2026 году: эволюция в деталях

GIF с танцем Рейчел из «Друзей» разросся до сотен гигабайт и сломал бэкапы Discourse

Обзор Ryzen 7 9850X3D: три процента за двадцать баксов

GIF с танцем Рейчел из «Друзей» разросся до сотен гигабайт и сломал бэкапы Discourse

От Ryzen 7 1800X до Ryzen 7 9850X3D: девять лет эволюции AMD в одном тесте

GIF с танцем Рейчел из «Друзей» разросся до сотен гигабайт и сломал бэкапы Discourse

Ryzen и 16 Гбайт DDR5: как сэкономить на памяти так, чтобы не лишиться 15 % производительности

GIF с танцем Рейчел из «Друзей» разросся до сотен гигабайт и сломал бэкапы Discourse

Компьютер месяца, спецвыпуск: эпоха отката, или Как дефицит чипов памяти влияет на выбор железа для игрового ПК

GIF с танцем Рейчел из «Друзей» разросся до сотен гигабайт и сломал бэкапы Discourse

Обзор ноутбука HONOR MagicBook X16 2026: как раньше, только лучше

GIF с танцем Рейчел из «Друзей» разросся до сотен гигабайт и сломал бэкапы Discourse

Обзор Samsung Galaxy Z TriFold: тройной складной смартфон по цене квартиры в Воркуте

GIF с танцем Рейчел из «Друзей» разросся до сотен гигабайт и сломал бэкапы Discourse

Платформа Discourse позволяет пользователям вставлять эмодзи и GIF-изображения в свои обсуждения. «Когда файл перемещается между контекстами безопасности (например, из личного сообщения в публикацию), система создаёт новую копию со случайным SHA1, — пояснил технический блогер Discourse Джейк Голдсборо (Jake Goldsborough). — Исходное содержимое идентично, но Discourse рассматривает его как новый файл».

Таким образом, популярное изображение или GIF-реакция распространяется по постам, репостам и личным сообщениям, и каждый контекст создаёт ещё одну копию файла. Файл, создавший 377 Гбайт избыточного размера бэкапа — это Рейчел из сериала «Друзья», танцующая свой танец радости. Эта GIF-анимация, по словам Discourse, «постоянно использовалась в постах, личных сообщениях, повсюду».

GIF с танцем Рейчел из «Друзей» разросся до сотен гигабайт и сломал бэкапы Discourse

Первая попытка Discourse решить проблему перегрузки системы дубликатами заключалась в отслеживании оригинального контента по его хешу. Во время резервного копирования загрузки группировались по хешу, и загружался только первый файл в каждой группе. Для всех дубликатов создавались жёсткие ссылки.

Это казалось элегантным решением, пока компания не столкнулась с ограничением файловой системы ext4 на примерно 65 000 жёстких ссылок на один индексный дескриптор (inode). В результате, по словам Discourse, «вместо одной загрузки для всех 246 173 дубликатов мы получили одну загрузку плюс 181 000 резервных загрузок после достижения лимита».

Discourse всё же удалось найти решение. Оно начинается так же, как и старое, с создания жёстких ссылок. Но когда файловая система выдаёт сообщение об ошибке EMLINK («превышение лимита жёстких ссылок»), следующая копия файла становится «основной», пока снова не будет достигнут лимит. Эта новая мера, по словам Discourse, «работает на любой файловой системе, никакой настройки не требуется».

«Теперь мы знаем, что Дженнифер Энистон может проводить стресс-тестирование инфраструктуры», — с иронией прокомментировала ситуацию Discourse в своём блоге.