bash.im ithappens.me zadolba.li

Факапы

13451

Показать всё, что скрыто

Расскажу про свой факап. Сейчас за него не сколько стыдно, сколько смешно.

Работаю админом в одном маленьком офисе с большими амбициями. Как полагается для такой конторы, тут у нас холдинг и куча ООО-ЗАО-ИП (10 организаций, если быть точным) и практически для каждой есть свой сайт, а для некоторых даже не один. Когда я пришёл к ним, большая часть сайтов была уже сделана и благополучно забыта, но парочку всё-таки пришлось рисовать мне. За «спасибо» и символическую премию. Я не против, это для меня было что-то новое и интересное. Собрали один такой сайт-информационку на джумле из пиратских модулей (с порно-ссылками, которые потом долго выслеживали и вычищали), нарисовали всё красиво (то есть руководитель сказал «ок»), а всё, что было некрасиво — скрыли.

В один прекрасный день ко мне подошла наша сотрудница, которая помимо торговли с Китаем добровольно-принудительно работала контентщицей на этом сайте, и ткнула меня носом в одну статью, где куча ботов наспамила комментов. Особо не разбираясь, поле комментов и их ввода мы просто скрыли через visibility: hidden (так как они там вообще не нужны), и всё снова стало красиво.

Прошло полгода. Месяц назад от хостера мне посыпались письма с угрозами: «Место на хостинге кончается, купите больше хостинга или мы вас закроем». Добавил сотню метров. Через пару недель опять то же самое. Добавил ещё сотню. На третьей сотне мне уже стало любопытно — что же так раздувает наш хостинг? Не новый ли сайт на OC Store с интеграцией в 1С и ежедневной выгрузкой номенклатуры? Полез через PhpMyAdmin смотреть размеры таблиц. И тут-то я и увидел то, что на весь остаток дня заставило меня улыбаться. Так как спираченный шаблон на джумлу победить до конца не удалось, недостающий функционал заменили на К2 и локализовали вручную (сам переводил, да). И таблица %prefix%_k2_comments была раздута до 1,5 Гб с содержимым в > 2 млн. строк. Судя по содержимому, боты, однажды зацепившись за пару статей, продолжали спамить туда свои китайские ссылки на протяжении всех этих долгих месяцев.

DELETE FROM %prefix%_k2_comments WHERE id > 1

И сразу размер базы уменьшился до 6 Мб. И стыдно, и смешно.

Мораль сей басни такова: если накрыть кучку тряпочкой — это вовсе не значит, что она не будет вонять.

13450

Квантовая неопределённость

Эффект присутствия при ловле багов? Попробуйте отсутствовать. Непонятно? Сейчас объясню.

В стародавние времена была у нас похожая история: вис один из офисных компьютеров. Ни с того ни с сего он наглухо зависал, не реагируя ни на что, кроме кнопки Reset.

Сидели над ним по часу, слушали музыку, читали книги — не виснет. Уйдёшь, оставив на попечение владельца — виснет.

А причина оказалась каким-то образом связана то ли с мышью, то ли со скринсейвером (которого не было, но, видимо, что-то как-то пыталось запуститься). Уже догадались?

Вот что вы делаете, когда тупо сидите у компа и чего-то ждёте? Даже если вы с ним ничего полезного не делаете — кто-то гоняет курсор мыши по экрану, кто-то постукивает по столу пальцами, заставляя мышь елозить туда-сюда на 1−2 пикселя, кто-то щёлкает кнопками.

А сотрудник, чей это был комп, оставаясь один, просто вставал и шёл трепаться с коллегами, пить чай, курить, смотреть в окно. Он-то не айтишник. И через несколько минут комп зависал наглухо.

Вылечили переустановкой системы, так как это было банально быстрее, поэтому настоящая причина зависания так и осталась невыясненной. Да и нужно ли это было?

13431

Гугл в помощь

Прочитав историю про ноль, расключённый на контакт заземления, получил лицевую травму от фейспалма.

Для кого выпускают ГОСТы, СНиПы и прочие стандарты? В основном, разумеется, для профессионалов. Но раз уж ты решил что-то сделать, ну так хотя бы загугли, можно вообще так поступить или лучше не надо.

Помните давнюю историю про таксу, которая за потолком тянула UTP? Задорно, ага. ГОСТ Р 53246? ANSI/TIA/EIA-569A? Не, не слышали. Профи, безусловно.

Золотое правило: если ты всё делаешь по соответствующему стандарту, ты гарантированно получишь работоспособную систему. Потому что стандарты предусматривают хороший такой «запас прочности», он же «защита от дурака», и в них в принципе отсутствуют так называемые узкие места.

А когда лень и недосуг почитать стандарт, получаются различные казусы. И не всегда забавные. Минимальный радиус изгиба оптики? Не в курсе? Тогда считай, что дешевле — ставить муфту на перелом кабеля или перетягивать трассу. Пучок UTP в одном лотке с вводным кабелем толщиной в руку — и чего это у нас тест на категорию 6 не проходит? Незаземлённый лоток — ой, откуда коллизии?

Иной раз складывается впечатление, что ГОСТы — это такая вещь в себе, никому, кроме авторов, не интересная. Добрая половина факапов, описанных на IT happens, как раз и случилась по причине пренебрежения правилами.

Собственно, это всё к чему? Есть такой документ — ПУЭ, Правила устройства электроустановок. Он совершенно не интересен ни админам, ни монтажникам слаботочки, ни, тем более, обычным гражданам, ровно до тех пор, пока не приходится столкнуться с сетью электропитания. Поскольку подавляющее число компьютерной и бытовой техники хочет для работы 220 В, в какой-то момент это столкновение произойдёт.

Так вот, когда это произойдёт, не поленитесь хотя бы Гуглом воспользоваться, если на ПУЭ сил не хватит. Узнаете много интересного про рабочий ноль и защитный ноль, например. Про то, что в распределительных щитах на вводе принято делать повторное заземление — соединять ноль и «землю». И про то, что после распределительного щита делать такое соединение категорически запрещается. Заодно узнаете, почему. Потому что, если вы этого не узнаете теоретически, то запросто можете узнать практически. Со всеми вытекающими.

13429

Земля курильщика

Пару лет назад в доме у родителей случилась беда: любимый полуантикварный компьютер с «Одноклассниками», фотоархивом и прочими полезными вещами перестал включаться. Сначала просто системник 1−2 раза в день решал отправиться поспать, списывали на жару и перегрев процессора при плохой вентиляции. Но наступила осень, и отключений стало только больше.

Тогда решили поменять блок питания, так как знали, что из-за старого блока тоже бывают аналогичные проблемы. С новым блоком комп проработал ещё пару недель и сдох окончательно.

Вздохнув и признав, что всё же я не инженер и не специалист в железе (максимум могу собрать что-то из стандартных компонентов «для своих» и настроить систему), решили вызвать мастера.

Мастер надиагностировал сгоревшую материнку и сгоревший процессор. Заменил на антиквариат из собственных запасов. Но через пару недель история повторилась.

Тут мы вспомнили, что не раз обращали внимание на наводки на корпусе. И наконец-то догадались проверить напряжение на контактах в розетке.

В общем, в конце 90-х мы делали ремонт. Для компьютера решили поставить «европейскую» трёхконтактную розетку, которые тогда ещё были непривычны. Так как в стене шёл обычный советский двужильный провод, решили боковые контакты замкнуть на ноль, ведь на нём же нет напряжения, чем не «земля»? Прошло время, и то ли в щитке, то ли на подстанции наш ноль поменяли с фазой. Теперь удивляюсь, что техника в таких условиях вообще жила несколько месяцев, и даже данные на дисках остались неповреждёнными.

13376

На ошибках мучиться

Логический пробник. Когда проверял каналы у одного устройства, случайно перепутал вилки, и так получилось, что вместо 5 вольт на пробник пошло 220. Бабах, а мне наука: «Проверяй перед подключением». И неоднократно било током, и обжигался паяльником…

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

Телефон-китаец на трёхбуквенном процессоре. По ошибке грохнул разметку памяти. Потом затёр предзагрузчик. Через полчаса копания на известном портале, посвящённом носимой электронике, всё восстановил.

Электронная книжка со скалой в названии. Экспериментирую на читалке со стеклобоем (потому что не жалко). И левые прошивки, и что только не делал. За 15 минут всё восстанавливается. Уже самому интересно, когда она наконец сдохнет без возможности восстановления.

Зато после этих манипуляций начал понемногу понимать, как устроены и как работают прошивки.

Как говорит моя знакомая, любой человек может поставить винду или поменять пробитое колесо. Другой вопрос, что не хотят напрягаться и отдают это «профессионалам».

13370

Говорит и показывает локалхост

Ежедневные бэкапы не всегда спасают от ошибок разработчиков.

На прошлой работе один из коллег при обновления конфига проекта снёс переключение с внешней БД на локальную при входе на локальную копию сайта проекта с локального IP (127.0.0.1). А так как локальные БД на всех машинах обновили за сутки до этого с продакшна, тестер разницы не заметил. Так и летели в течение всего дня на продакшн названия новостей типа «О%#&нная новость» и «За$%#нный сайт». А неплохой был тестировщик…

13365

Бэкапом по факапу

В корпоративном чате:

Я очень наделся, что в этом проекте не скажу этих слов, но обстоятельства заставляют.

Господа, а бэкапы кто-то делал?