индусские программисты такие программисты… или о cas_agent


Главная Форумы POWER Systems AIX/Hardware индусские программисты такие программисты… или о cas_agent

В этой теме 5 ответов, 5 участников, последнее обновление  Albert Maksimov 5 года/лет, 1 месяц назад.

  • Автор
    Сообщения
  • #16899

    andrewk
    Участник

    В AIX 7.1 поставляется (по умолчанию включенным) некий замечательный сервис под названием cas_agent. На самом деле — какая-то запчасть от IBM Systems Director. Те, кто его знает лучше меня, пусть сами рассказывают, какая 🙂

    Итак, как всегда в любой стране мира, все начинается с крика — «А, шеф, все пропало!» После выяснения, что пропало, оказывается пропало место в /. Это неприятно, тем более, что туда по идее должны писать только системные программы. Начинаю искать. Долго ли, коротко ли, но находится в каталоге /dev замечательный файлик:

    -rw-r—r— 1 root system 11947 Oct 10 09:16 /dev/null 2>&1

    На размер не смотрите — это уже после многих тестов, а смотрите лучше на имя файла. Попытка fuser’ом в лоб найти, кому же принадлежит файл, к успеху не приводит — никому. Но если его удалить, файл появляется заново, значит, кому-то он все-таки нужен. После изучения содержимого виновник обнаружился — cas_agent. Но кто конкретно? Гугл наш друг с момента его появления в Интернете и находится замечательный баг и фикс к нему:

    http://www-01.ibm.com/support/docview.wss?uid=nas74d33539b559cc0308625792900533a8f

    Замечательные индусские программисты просто пишут раз в 10 сек в лог хартбит. Что ж такого? Вся соль заключается в замечательной строке:

    CAS_SRC_LOG=»/dev/null 2>&1″

    На первый взгляд она выглядит в принципе правильно. Но только на первый взгляд! Когда в дальнейшем делается что-то типа:

    /usr/bin/echo «heartbeat: `/usr/bin/date` » >> $CAS_SRC_LOG

    вместо $CAS_SRC_LOG подставляется полностью все значение переменной! Т.е. это разворачивается как:

    /usr/bin/echo «heartbeat: `/usr/bin/date` » >> «/dev/null 2>&1»

    и создается файл с подобающим именем. Но это ладно — люди делают ошибки, даже глупые и детские. Но какой изящный workaround предложен в качестве решения! Оставив за скобками, что автор workaround’а не умеет пользоваться grep и awk, он просто решил выкинуть весь логгинг. А зачем он нужен, если он файловую систему переполняет? Ну вот зачем вообще какому-то приложению логи нужны-то? Нет их — и никто не знает о проблемах, никто их не видит, а если никто о них не знает, то они ведь и не существуют! Знаете, такая детская модель поведения — я закрою глаза и ты исчезнешь? При этом если брать workaround (а не скрипт, который там приаттачен), то файл-то все равно создается! И в него пишется! Т.е. шанс, что он рано или поздно переполнит Ваш /, хоть и стали меньше, но все еще есть.

    Слов нет, одни эмоции от таких программистов. IBM, верни разработку в штаты!

  • #16900

    Victor Sedyakin
    Участник

    Напомнило как прошлом году автор драйверов Bumblebee (поддержка Nvidia Optimus под Linux) поставил лишний пробел в скрипте, из-за чего у любителей сразу накатывать апдейты слетел /usr.

    Было как-то так:
    rm -rf /usr /lib/nvidia-current/xorg/xorg
    А надо бы:
    rm -rf /usr/lib/nvidia-current/xorg/xorg

    Жаль, автор стер коммит на гитхабе, там было много лестных комментариев 🙂

  • #16919

    Alex
    Участник

    Это… прекрасно!!
    (выколол себе глаза)

    Также прекрасно передаёт отношение IBM к код ревью и тестированию (которых, похоже, просто нет). Здравствуй, милый аутсорс.

  • #16964

    Eldar Zhensykbaev
    Участник

    Слов нет, одни эмоции от таких программистов. IBM, верни разработку в штаты!

    Вот только есть риск, что вместе с разработкой в штаты привезут и разработчиков, которые совсем разленятся, получив рабочую визу…
    👿

  • #16998

    andrewk
    Участник
  • #17062

    Albert Maksimov
    Участник

    В AIX6.1 после обновления до TL6 была аналогичная ситуация.

Для ответа в этой теме необходимо авторизоваться.