УкраїнськаEnglishmRussian
Вхід/Новий
У темі немає нових постів

[BugWrong] останов работы демона


Автор Повідомлення
Повідомлення створено: 19. 12. 2011 [14:25]
Some0ne
Vadim Kardash
Автор теми
Зареєстрован(а) с: 23.09.2009
Повідомлення: 28
Доброго времени суток.
обнаружилась следующая проблема:
имеется "сервер" (AltLinux5.1 ядро Linux-2.6.30-std-def-alt15) на котором запущена демон OpenSCADA (0.7.2)
через какое-то время после запуска, может быть неделя, скада перестаёт отвечать
по запросу: service oscadad status
ответ: openscada is dead, but susbsystem is locked
а в системном журнале имеется запись:
kernel: [268456.770545] openscada[20689]: segfault at 7fff886faf68 ip 00007fff886faf68 sp 00007fff5e17f5f8 error 15

подскажите в чем может быть дело, или какую ещё информацию нужно предоставить.
Повідомлення створено: 19. 12. 2011 [14:42]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
"Some0ne" wrote:

kernel: [268456.770545] openscada[20689]: segfault at 7fff886faf68 ip 00007fff886faf68 sp 00007fff5e17f5f8 error 15
подскажите в чем может быть дело, или какую ещё информацию нужно предоставить.

Получаем корку и достаём перечень предсмертных вызовов: http://wiki.oscada.org/Doc/OtchjotOSboe

Learn, learn and learn better than work, work and work.
Повідомлення створено: 19. 12. 2011 [15:06]
Some0ne
Vadim Kardash
Автор теми
Зареєстрован(а) с: 23.09.2009
Повідомлення: 28
Достаточно ли будет добавить
ulimit -c unlimited

в /etc/init.d/oscadad

start()
{
export LANG=ru_RU.UTF-8
export LANGUAGE=ru_RU.UTF-8

ulimit -c unlimited
start_daemon --lockfile "$LOCKFILE" --expect-user root -- $OPENSCADA $ARGS
RETVAL=$?
return $RETVAL
}

и перезапустить демон?
Повідомлення створено: 19. 12. 2011 [16:20]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
"Some0ne" wrote:

Достаточно ли будет добавить
ulimit -c unlimited

Недостаточно. Нужно проверить/установить значение в /proc/sys/kernel/core_pattern. В случае с ALTLinux точно нужно устанавливать.

Кроме того из режима демона мне ни разу не удавалось получить корку. Поэтому заходим от root, вызываем "screen" в нём вызываем:
$ export LANG=ru_RU.UTF-8
$ ulimit -c unlimited
$ openscada


Затем нажимаем Ctr+A, D
После этого OpenSCADA продолжит работу, как демон и при крушении будет создана корка в /var/spool/openscada. Мало того можно войти назад ($ screen -r) и увидеть сообщения в консоли, перед падением.

P.S. Если будет, при запуске, ругаться на отсутствие экрана, то спрячьте куда нибудь файл модуля /usr/lib/openscada/ui_QTStarter.so

Learn, learn and learn better than work, work and work.



11055