OpenSCADAWiki: Home Page Uk/Doc/ Crash Report ...

Home | Index | Changes | Comments | Users | Registration | Login  Password:  
 
This is an old revision of HomePageUk/Doc/CrashReport from 2012-03-21 17:39:32..
English (1 Kb) English Version
Russian (1 Kb) Русская версия?

Керівний документ по локалізації збоїв та приготування звітів про них

Вступ

Налагодженню та тестуванню системи OpenSCADA приділяється значний час розробників, однак у зв'язку із обмеженістю ресурсів та і практичною неможливістю охопити всі варіанти конфігурації та виконання системи OpenSCADA помилки можуть проявлятися як у вигляді невиконання окремих функцій, некоректності їх виконання та навіть аварійного завершення програми у користувачів. Розуміння цього з боку користувача дуже важливе, та з його боку потребується добра воля для приділення деякого часу на приготування звіту про проблему з метою її наступного усунення розробниками.


Перед приготуванням повідомлення про проблему рекомендується ознайомитися з переліком помилок та зауважень у відповідному розділі Помилки та зауваження до системи OpenSCADA.

Вимоги до повідомлення про помилку

Для виключення зайвих навідних питань та для прискорення процесу локалізації проблеми рекомендується слідувати наступним вимогам до повідомлення.

Способи повідомлення

Повідомити про помилку у системі OpenSCADA можна декількома способами:


Переклад триває

Получение файла предсмертного дампа и его обработка

В ОС Linux, при сбое программ, ядро ОС может формировать предсмертный дамп памяти программы. С помощью этого дампа часто можно выявить место в программе, вызвавшее аварийную остановку. Для включения возможности генерации предсмертного дампа памяти программы ядром необходимо выполнить команды:

# Проверка возможности генерации дампов памяти
# Указывает "core", если включена
$ cat /proc/sys/kernel/core_pattern
# Включение генерации дампов памяти
$ echo "core" > /proc/sys/kernel/core_pattern


После этого необходимо снять ограничение на размер генерируемого файла дампа, для чего OpenSCADA можно запустить с аргументом --CoreDumpAllow или выполнить специальную команду перед вызовом OpenSCADA "$ ulimit -c unlimited".


Затем достаточно убедиться в том, что пользователь, запускающий OpenSCADA, имеет право записи в рабочую директорию OpenSCADA, параметр "Workdir" в конфигурационном файле программы.


Далее запускается система OpenSCADA и воспроизводится аварийное завершение, в результате которого в рабочей директории OpenSCADA создаётся файл core.


Типовые скрипты запуска OpenSCADA, которые поставляются в пакетах дистрибутивов OpenSCADA с версии 0.8.0, включают генерацию дампа памяти и автоматически формируют из него отчёт обратных вызовов (backtrace) в виде файлов "crash_2012-01-05_11:05.txt" в рабочей директории.


Если сформировался файл дампа памяти core, а отчёт обратных вызовов автоматически не сформировался, то вероятно не установлен отладчик "gdb". В таком случае Вы должны его установить и вызвать вручную команду, из текущей директории для глобальной конфигурации:

$ gdb openscada --core core --batch --quiet -ex "thread apply all bt full" -ex "quit" > crash_$(date +%F_%H:%M).txt

Или-же выполнить процедуру в интерактивном режиме, для глобальной конфигурации:

# Переход к рабочей директории OpenSCADA
(gdb) cd /var/spool/openscada
# Указание исполняемого файла, не скрипты!
(gdb) file /usr/bin/openscada
# Указание файла дампа памяти программы
(gdb) core-file /var/spool/openscada/core.26658
# Получение разворота стека исполнения
(gdb) bt
#0  0xb7d104c0 in pthread_cancel () from /lib/librt.so.1
#1  0xb7d1edaa in start_thread () from /lib/libpthread.so.0
#2  0xb7dfcf5e in clone () from /lib/libc.so.6


 
There are no files on this page.[Display files/form]
There is no comment on this page. [Display comments/form]