SySEng запрашивает мнения программистов об ожидаемом и желаемом результате инициализации программы, в частности о загрузке общих библиотек для программы, для которой у меня нет исходного кода. Весь код доставляется от разработчика через RPM.
Подозреваемый прога показывает постоянную буферизацию Revc-Q на двух TCP соединениях. Другой конец TCP-соединения выглядит хорошо. Подозреваемые проги буферируют 1000-10000 байт почти постоянно, редко уходят в ноль. Хост подозрительной проги показывает tcpActiveOpens.0 50 000 с tcpAttemptFails.0 на 47 000 с непрерывным приращением обоих. Многие другие возможные проблемы с TCP.
При запуске ldd на подозрительной проге возвращается всего 42 библиотеки, 24 из которых "не найдены", остальные 18 разрешаются с помощью DIR и hexaddr.
Поместите обертку strace вокруг подозрительной проги и отметьте множество "-1 ENOENT" в каждой библиотеке, а не только те, которые отмечены как "not found" с ldd. Все библиотеки в итоге найдены и загружены в подозрительные проги mem. У некоторых до успеха 42 целых.
Связаться с разработчиком с выводами и были уверены, что когда я запустил ldd, мне нужно было получить их конфигурационный файл среды, который должен запускаться при запуске программы, и задать все пути к библиотекам. Нет комментариев на ENOENT.
Вопросы: Когда вы закончили свой код и выполнили его, вы проверяете с помощью таких инструментов, как ldd? Должен ли ldd всегда возвращать 0, или это «многократно» не всегда является проблемой. А как насчет ENOENTS? Мне кажется, что ошибок должно быть ноль, если код скомпилирован и работает правильно.