URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 92857
[ Назад ]

Исходное сообщение
"Об ошибке сегментирования"

Отправлено Shoorf , 10-Янв-12 13:18 
Доброго времени суток и с новым годом, коллеги!

Есть у нас в офисе небольшой сервер на CentOS 5.4 и крутится (вернее крутилась) на нем некая корпоративная софтина-обработчик, исходников которой у нас нет и не было. Периодически эта софтина перезапускалась по определенным событиям, загружала и обновляла небольшую базу mysql.

И вот, перезапустившись первый раз в новом году, она при запуске выдала ошибку сегментирования. Восстановление бинарников, конфигов и базы на момент последнего работоспособного запуска ни к чему не привели. Полез в gdb, в нем софтина запускается и функционирует как надо. Может быть, я чего-то не понимаю в механике работы отладчика и системы? Почему так происходит и не удается отловить ошибку отладчиком? Что можно еще сделать?

p.s. сервер доступен только для внутренней сети, вероятность взлома системы ничтожно мала.
p.p.s. система, любые компоненты и библиотеки не обновлялись уже достаточно долго, главным образом для исключения подобных ситуаций.


Содержание

Сообщения в этом обсуждении
"Об ошибке сегментирования"
Отправлено mesmeridze , 10-Янв-12 13:53 
Переведите время назад. Попробуйте. Возможно что-то с лицензиями.

"Об ошибке сегментирования"
Отправлено Shoorf , 10-Янв-12 14:52 
> Переведите время назад. Попробуйте. Возможно что-то с лицензиями.

Спасибо за ответ. Переставил системную дату на 01 декабря 11 года. Увы, никакой разницы...


"Об ошибке сегментирования"
Отправлено 1 , 10-Янв-12 15:57 
> загружала и обновляла небольшую базу mysql.

может дело в данных в базе? софтина не обрабатывает какое нить значение и валится. без исходников можно попробовать по трейсить какие запросы шлются и ответы


"Об ошибке сегментирования"
Отправлено Shoorf , 10-Янв-12 16:25 
>> загружала и обновляла небольшую базу mysql.
> может дело в данных в базе? софтина не обрабатывает какое нить значение
> и валится. без исходников можно попробовать по трейсить какие запросы шлются
> и ответы

В том-то и дело, что со старым бекапом базы тоже не работает. Но через gdb все работает, без дополнительных ухищрений. Ума не приложу, почему?


"Об ошибке сегментирования"
Отправлено ACCA , 11-Янв-12 08:54 
> работоспособного запуска ни к чему не привели. Полез в gdb, в
> нем софтина запускается и функционирует как надо. Может быть, я чего-то
> не понимаю в механике работы отладчика и системы? Почему так происходит
> и не удается отловить ошибку отладчиком? Что можно еще сделать?

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

Можешь попробовать пускать через strace - можешь увидеть, на каком вызове дохнет. Потом нужно будет ответить на главный вопрос программиста - "что ты будешь делать с результатом?"


> p.p.s. система, любые компоненты и библиотеки не обновлялись уже достаточно долго,
> главным образом для исключения подобных ситуаций.

При загрузке память как-то по-другому легла. Начались глюки.


В своё время натыкался на такую же проблему, в конце концов поправил скрипт в init.d, чтобы пускать эту срань под отладчиком - типа штатный режим. Заказчику сказал, чтобы принёс той травы, которую курили пейсатели, тогда можно попробовать пофиксить, как положено. Заказчик грустно посмотрел в спичечный коробок и принял управленческое решение - "хусым".


"Об ошибке сегментирования"
Отправлено Shoorf , 11-Янв-12 09:29 
> Ничего не сделаешь - софтина где-то хватает память и читает, ещё не
> записав. Отладчик обнуляет память перед выделением, так что ублюдочное поделие натыкается
> на ноль и его переклинивает в правильную сторону.
> Можешь попробовать пускать через strace - можешь увидеть, на каком вызове дохнет.
> Потом нужно будет ответить на главный вопрос программиста - "что ты
> будешь делать с результатом?"

Спасибо, сегодня попробуем.