truss в aix6

  • В этой теме 9 ответов, 3 участника, последнее обновление 10 лет назад сделано Alex.
Просмотр 9 веток ответов
  • Автор
    Сообщения
    • #13389
      Alex
      Участник

      Всем привет,

      только-только начал переползать на шестой аикс, наткнулся на странность с одним из разделов.

      # oslevel -s
      6100-06-05-1115
      # ulimit -a
      time(seconds) unlimited
      file(blocks) unlimited
      data(kbytes) unlimited
      stack(kbytes) unlimited
      memory(kbytes) unlimited
      coredump(blocks) unlimited
      nofiles(descriptors) unlimited
      threads(per process) unlimited
      processes(per user) unlimited

      # truss date
      execve(“/usr/bin/date”, 0x2FF22CE0, 0x20012EF8) argc: 1
      kioctl(1, 22528, 0x00000000, 0x00000000) = 0
      Mon Oct 3 04:59:28 CDT 2011
      kwrite(1, ” M o n O c t 3 0″.., 29) = 29
      kfcntl(1, F_GETFL, 0x00000001) = 67110914
      kfcntl(2, F_GETFL, 0x2FF22FFC) = 67110914
      _exit(0)

      Как можно видеть, отслеживаются только какие-то избранные системные вызовы. Логически объяснить такое поведение truss я не могу и в мане ничего путного не вижу. Подозреваю, что упустил что-то тривиальное. Да, рядом стоит аналогичный раздел с шестёркой (с другим набором работающих приложений) – там всё нормально.

      Направьте мысли в верном направлении.

    • #13413
      Serg
      Участник

      “это программа розыгрыш?”

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

      не уверен, что поможет, но попробуйте сравнить файлы /etc/trcfmt – официально он для системы трейсинга, но чем черт не шутит.

    • #13417
      Alex
      Участник

      Разные, но это обусловлено разными oslevel-ами. По крайней мере перенос с соседнего раздела ничего не дал. Да, в районе smit trace я первым делом всё осмотрел – идентично.

      Самое забавное, что нашёл сейчас раздел с 5.3 с аналогичным поведением truss. При этом большинство 5.3 разливается либо с одних и тех же образов (клонируется), либо ставится из дистрибутива. Пока в качестве идеи для проверки не нашёл ничего лучше, чем сконструировать раздел с чистой 6.1 и посмотреть, как будет вести себя truss, завтра займусь.

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

      а что говорит, например, lppchk -vm3? ничего?

    • #13466
      Alex
      Участник

      Пусто, ага, с установленными файлсетами там всё в норме. Более того, каких-то проблем с “проблемными” разделами я никогда не замечал и truss то на одном из них запустил, чтобы отследить, откуда libc файлы описания таймзоны подтягивает (из соседнего треда) 😉

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

      я посмотрел внутри truss’а (strings) и у меня возникло впечатление, что все таблицы с сисколлами встроены прямо в него (hard-coded). Т.е. в самом truss по идее ломаться нечему. Если md5-суммы на обоих системах одинаковы, то с truss’ом все в порядке и проблема, по всей видимости, в окружении, в котором он запускается

    • #13475
      Alex
      Участник

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

    • #13490
      Alex
      Участник

      Решение оказалось идиотским и тривиальным 😉
      Осталось понять, почему truss работает именно так, сейчас осмыслю.

    • #13491
      Alex
      Участник

      Нет, не понимаю.

      В-общем, катализатором решения явилось чтение вывода truss truss. Оказалось, что утилита лазает в /usr/lib/nls/msg. Там, в каталогах соответствующей локали, лежит что-то вроде прекешированого вывода strings для некоторых команд. Странность в том, что ничего полезного там для себя он открыть не может (в случае truss date по крайней мере). Тем не менее, можете сравнить на своих системах вывод:

      export LC_ALL=C truss date; и
      export LC_ALL=en_US truss date

      у меня вывод разительно отличается.

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