Рассылка на всю компанию + тридцать тысяч сотрудников + автоответы = ?1
Пост был взят с Reddit и переведен. Приятного чтения!
В 2004 году я лично наблюдал сход почтовой лавины в крупном образовательном заведении.
Одна сотрудница решила написать воззвание: мол, снимет квартиру в таком-то районе. Так получилось, что она обнаружила группу рассылки типа all-employees@org.edu, включавшую всех сотрудников, и написала туда. А «всех сотрудников» — это все тридцать тысяч человек, работавших в этом образовательном заведении. И просьбу этой дамы посоветовать квартиру получили все, начиная с директора.
Разумеется, посыпались стандартные ответы типа «Зачем вы пишете это мне?», «Исключите меня из рассылки» и «Блин, хватит уже отвечать»... Автор каждого такого письма нажал «ответить всем» — сгенерировал тридцать тысяч новых писем в группе all-employees@org.edu. По ящикам разлетелось полмиллиона писем, и почтовый сервер начал подвисать.
Первый косяк техподдержки даже не в том, что группа all-employees@org.edu существовала (это довольно разумно), но скорее в том, что туда мог писать кто угодно (а стоило бы настроить проверку отправителя и присылать один-единственный стандартный ответ: «Вы не генеральный директор — у вас нет доступа к рассылке»).
Но настоящая проблема была не в этом. Может, рано или поздно люди перестали бы отвечать, и все улеглось бы.
В организации на тридцать тысяч сотрудников всегда много у кого отпуск, и часть из них (допустим, человек двадцать) не забыла настроить автоматические ответы с сообщением об этом. И автоответы полетели всем участникам переписки, то есть all-employees@org.edu тоже. Так что каждое «Всем плевать на вашу квартиру» мало того что отправлялось тридцать тысяч раз... на него вдобавок приходило 30 000 * 20 = 600 000 ответов. Громада «Буду в отпуске до ноября» задавила даже лавину писем про квартиру.
Но реальная проблема была даже не в этом — в конце концов, тут тоже еще был бы шанс, что все уляжется.
Реальная проблема была в том, что почтовый сервер очень прилежно выполнял свою задачу. Автоответы про отпуск отправлялись не один раз, а в ответ на каждое новое входящее сообщение... в том числе на автоответы об отпуске других людей.
Лавина этих ответов на другие такие же ответы превратила весь почтовый сервер в фабрику клонов автоответов в духе агента Смита, снова и снова штампующую сообщения об отпуске.
Система просто расплавилась. Сервер упал. У компании на тридцать тысяч человек вдруг примерно на сутки вообще не оказалось почты.
Но это еще не конец.
Техподдержка занялась чисткой ящиков от миллионов сообщений и отключением автоответов. Им удалось наладить почтовый сервер, и первым делом нужно было отправить всем сотрудникам письмо с объяснением сути проблемы и так далее. Это оповещение они отправили на all-employees@org.edu.
Второй косяк техподдержки: прежде чем посылать письмо, они выключили почти все автоответы — но как минимум один все-таки упустили.
Точнее, как минимум два.