Истории за 4 Ноября
Рассказ про пятисотмильную электронную почту
Я хочу рассказать историю службы техподдержки, которая может показаться невероятной далеким от этой работы людям. Но мне хочется изложить ее широкой аудитории – хотя бы потому, что это прекрасная рассказка под выпивку в коллективе коллег. Кое-что слегка приукрашено, но это – для красоты рассказа, все важные детали сохранены.
Несколько лет назад я работал в службе технической поддержки электронной почты университетского кампуса. Мне позвонил заведующий кафедрой статистики.
«У нас проблема с отправкой почты с кафедры»
Я:
«В чем проблема?»
«Мы не можем послать электронную почту больше чем на 500 миль»
Я роняю чашку с кофе. «Повторите, пожалуйста?»
«Мы не можем отправить письмо адресатам, находящимся далее 500 миль отсюда», повторяет завкафедрой. «Точнее, 520. Но не дальше».
Я пытаюсь собраться с мыслями. Крыша начинает медленно меня покидать, но нельзя позволить крыше уйти в разговоре с завкафедрой. Даже завкафедрой статистики. «Хммм... Понимаете, принцип доставки электронной почты не зависит от расстояния. Почему Вы думаете, что не можете отправлять почту далее 500 миль?»
«Я не думаю, я знаю» - довольно жестким тоном заявляет завкафедрой.
«Когда мы впервые это заметили, несколько дней назад...»
«Вы ждали несколько ДНЕЙ?» - перебиваю я уже слегка дрожащим голосом – «и вы обходились без почты?»
«Нет. Мы могли отправлять письма, но...».
«Но не далее 500 миль, сэр? Но почему же Вы не позвонили раньше?»
«Ну, у нас не было достаточного количества данных до сегодняшнего дня».
Ну да. Кафедра статистики, как-никак. О Господи...
«Ну, так или иначе – я попросил наших геостатистиков разобраться...»
Так. Геостатистики.
«...и у них получилась карта, показывающая расстояние, на которое мы можем отсылать почту. Чуть больше 500 миль. На некоторые адреса, находящиеся ближе, мы тоже не можем отправить почту с первой попытки – но дальше 500 миль мы не можем отправить ничего вообще».
«Я понял, сэр». Крыша-таки решила меня оставить. «Когда это началось? Вы сказали – несколько дней назад. Вы перенастраивали Ваши сервера в последнее время?»
«Да, приходили ребята от производителя, пропатчили сервер и перезагрузили его. Но я специально у них спросил – они говорят, что почты это никоим образом не коснулось».
«Хорошо, давайте я посмотрю, что присходит, и перезвоню Вам» - ответил я, искренне надеясь, что так не шутят даже на Первое Апреля – а сегодня далеко не Первое Апреля. Хотелось догадаться, кто из моих знакомых мог устроить подобное представление.
Нууу... Для начала я залогинился на сервер их кафедры и отправил несколько пробных писем. Все это происходило в Северной Каролине, и все письма моментально вернулись ко мне в ящик. Ричмонд, Атланта, Вашингтон – сработало. Принстон (400 миль) – сработало.
Далее я попробовал послать письмо в Мемфис (600 миль). Отлуп.
Бостон, отлуп. Детройт, отлуп. Я открыл адресную книгу и начал пытаться сузить круги. Нью-Йорк (420 миль) – работает, Провиденс (580 миль) – отлуп.
У меня появились сомнения в собственной вменяемости. Я решил попробовать отправить письмо своему другу, живущему в Северной Каролине, но работающему с провайдером в Сиэттле.
Благодарю Тебя, Господи. Отлуп. Если бы оказалось, что прохождение писем зависит от того, где находится человек, их получающий – я бы сам, по собственной инициативе и с гордо поднятой головой пошел бы сдаваться санитарам.
Поняв, наконец, что завкафедрой не бредит, я решил посмотреть на sendmail.cf. Вполне нормальный sendmail.cf. Знакомый даже.
Я сравнил его diff’ом со стандартным sendmail.cf у меня на диске. Он не изменялся. Это был ровно тот же sendmail.cf, который я делал собственноручно.
Но опцию "FAIL_MAIL_OVER_500_MILES" я не включал, это точно.
Каюк. Ну что еще попробовать? telnet по 25-му порту на сервер этой гребаной кафедры.
Сервер радостно отвечает, как ему и положено – blah-blah-blah, я, говорит, SunOS.
Стоп-стоп-стоп... SunOS sendmail? Sun тогда поставлял со своей операционкой sendmail 5, хотя все нормальные люди уже работали с sendmail 8.
Поскольку я – все-таки неплохой администратор, почта у меня ходила под sendmail 8. Ну и опять-таки – поскольку я – человек, приученный к порядку, я переписал sendmail.cf с нормальными, понятными именами переменных и опций. Что с переменными и опциями делал sendmail 5, вы должны помнить.
Так-так-так... Картинка собиралась. Мне снова захотелось кофе.
Ребятки от Sun пропатчили операционку, но sendmail, в общем-то, тоже ее часть. Они удачно закрыли дыры, но sendmail снова стал 5, а не 8. Но в одном они были правы – sendmail.cf действительно никто не тронул. А какая разница, для восьмой версии он или для пятой?
Ну, короче говоря. Пятый (по крайней мере, в варианте Sun’а) – нормально отрабатывал sendmail.cf от восьмого. Рулсеты-то не изменились.
Но вот опции настройки, такие неприлично длинные – он считал чуть ли не комментариями. Клал на них. А откомпилирован он был без настроек по умолчанию.
И, как честный человек, не найдя чего-то в sendmail.cf, он устанавливал это в 0.
Одна из успешно установленных в ноль настроек – таймаут для соединения с удаленным SMTP – сервером. Поигравшись с этим сервером, я понял, что «ноль» по его мнению – это около трех миллисекунд.
Так. Ага...
Сетка наша уже в то время была на коммутаторах, и задержек практически не имела.
Задержки снаружи – это, в общем. Было понятно.
Ага. Скорость распространения электромагнитной волны.
ОООПС....
Умножаем время на скорость света, и получаем... и получаем...
558.84719
Пятьсот пятьдесят восемь миль.
Учились мы тогда в 9-м классе. У одного моего друга уехала мать в
командировку. Мы все (а нас было пятеро) ушли с занятий, купили 5
бутылок водки и пошли к нему бухать. Часа через 2 двое уже были
отключенные, а мы втроем еще держались. На закуску у нас было 5 кг
сарделек, которых заботливая мама оставила сыну, чтоб не голодал,
и мы их периодически варили. Захотев отлить, один из нас с трудом
встал и побрел в туалет (совмещенный). Долго пристраивался к унитазу
(а так как дверь была открыта, то мы все это видели), потом понял,
что не попадет, и повернулся к ванной. Хозяин квартиры, сидевший рядом
со мной, схватил со стола сардельку и, подкравшись к копающемуся в
ширинке парню (а год был 1975 и всех заставляли носить школьную форму,
где на брюках молнии и в помине не было, а были пуговицы), сунул ему
в руки сардельку. Тот блаженно расслабился, закатил глаза к потолку,
и из штанины потекла струя. Но самое интересное произошло после. Поссав,он разжал пальцы и сарделька брякнулась на пол. Я первый (и последний) раз в жизни видел, как человек трезвеет за секунду!
Приведенный ниже текст является записью радио-переговоров, имевших место между Американским военным кораблем и Канадскими береговыми службами в районе побережья Hьюфаундленд в октябре 1995 года.
Канадцы:
Пожалуйста, отклонитесь на 15 градусов к югу во избежание столкновения.
Американцы:
Рекомендуем вам отклониться на 15 градусов к северу во избежание столкновения.
Канадцы:
Ответ отрицательный. Вам необходимо изменить курс на 15 градусов к югу во избежание столкновения.
Американцы:
Говорит капитан американского военного кора***. Повторяю, измените Ваш курс.
Канадцы:
Hет. Повторяю, измените Ваш курс.
Американцы:
Говорит авианосец Линкольн, второй по величине корабль американского атлантического флота. Иду в сопровождении трех эскадренных миноносцев, трех крейсеров не считая прочих судов сопровождения. Hастаиваю на изменении вашего курса на 15 градусов к северу. Повторяю, один пять градусов к северу. В противном случае мы примем контр меры для обеспечения безопасности нашего кора***.
Канадцы:
Говорит маяк!...
предыдущие | следующие