Отладка зависаний.

Взгляд изнутри

Модератор: Модераторы разделов

Ответить
reinhard
Сообщения: 86
ОС: Fedora Core, FreeBSD

Отладка зависаний.

Сообщение reinhard »

Приветствую!

Есть проблема: где-то раз в неделю терминальный сервер зависает намертво, до ресета. Поскольку GUI, не могу прочитать генерируется ли паника или нет. Подозрения падают на CIFS модуль от Etersoft. (пару раз зависло на глазах при монтировании CIFS ресурсов, почти каждый раз при зависании последние строчки в логе про монтирование CIFS ресурсов) Есть способы отладки возникновения таких ситуаций?

Система Fedora8, ядро - Linux 2.6.26.8-57.fc8, etercifs 4.5.7
Спасибо сказали:
shotdownsystem
Сообщения: 423
ОС: Basic command interpreter
Контактная информация:

Re: Отладка зависаний.

Сообщение shotdownsystem »

reinhard писал(а):
06.12.2010 12:32
Приветствую!

Есть проблема: где-то раз в неделю терминальный сервер зависает намертво, до ресета. Поскольку GUI, не могу прочитать генерируется ли паника или нет. Подозрения падают на CIFS модуль от Etersoft. (пару раз зависло на глазах при монтировании CIFS ресурсов, почти каждый раз при зависании последние строчки в логе про монтирование CIFS ресурсов) Есть способы отладки возникновения таких ситуаций?

Система Fedora8, ядро - Linux 2.6.26.8-57.fc8, etercifs 4.5.7

а МагическиеКлавиши работают?
puts ("Working, please wait...");while(1);
Спасибо сказали:
reinhard
Сообщения: 86
ОС: Fedora Core, FreeBSD

Re: Отладка зависаний.

Сообщение reinhard »

shotdownsystem писал(а):
06.12.2010 12:45
а МагическиеКлавиши работают?


Нет, не пробовал. А если там GUI на консоли, то какую комбинацию магических клавишь следует попробовать?
Alt-SysRq-o?
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: Отладка зависаний.

Сообщение Stauffenberg »

reinhard писал(а):
06.12.2010 12:32
Есть способы отладки возникновения таких ситуаций?

Если такие ситуации возникают только с подгруженным модулем, то ответ напрашивается сам собой.
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
vel21ripn
Сообщения: 14

Re: Отладка зависаний.

Сообщение vel21ripn »

Stauffenberg писал(а):
06.12.2010 22:50
reinhard писал(а):
06.12.2010 12:32
Есть способы отладки возникновения таких ситуаций?

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

было бы ядро посвежее можно было бы попробовать ramoops - для отладки не железячных глюков то что надо.

1) добавить в параметры загрузки ядра memmap=256K$0xfc0000 ramoops.mem_address=0xfc0000 ramoops.mem_size=0x40000
2) modprobe ramoops mem_address=0xfc0000 mem_size=0x40000
3) echo 30 >/proc/sys/kernel/panic
echo 1 >/proc/sys/kernel/panic_on_oops
echo 1 >/proc/sys/kernel/panic_on_io_nmi
echo 1 >/proc/sys/kernel/panic_on_unrecovered_nmi
ну а при старте dd if=/dev/mem bs=256k skip=63 count=1 of=oops
каждый oops 4kb
Спасибо сказали:
reinhard
Сообщения: 86
ОС: Fedora Core, FreeBSD

Re: Отладка зависаний.

Сообщение reinhard »

Stauffenberg писал(а):
06.12.2010 22:50
Если такие ситуации возникают только с подгруженным модулем, то ответ напрашивается сам собой.


К сожалению, wine-etersoft нужен для работы, без модуля etercifs он практически не работает, а зависания происходят достаточно редко, чтобы можно было выгрузить его без ущерба для основной функции :-(
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: Отладка зависаний.

Сообщение Stauffenberg »

Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
shotdownsystem
Сообщения: 423
ОС: Basic command interpreter
Контактная информация:

Re: Отладка зависаний.

Сообщение shotdownsystem »

интуитивно пологая, что у автора нет желания копаться в чужом коде, есть предложение при зависании зафлушить диск и посмотреть может кто в логах об ошибке заикнулся.
puts ("Working, please wait...");while(1);
Спасибо сказали:
Ответить