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

[BugWrong] crash_core c libOPC_UA.cpp


Автор Повідомлення
Повідомлення створено: 14. 01. 2014 [11:46]
rxs5
Дмитрий Лыков
In tech support
Автор теми
Зареєстрован(а) с: 06.11.2013
Повідомлення: 205
Исходные данные
На OpenSCADA используется собственный модуль для сбора данных. Через OPC UA сервер данные предоставляются клиентам.
Были запущены клиенты UAExpert и IWS.
Такая связка проработала не более 4 часов и затем OpenSCADA ушла в crash_core.
С ошибкой
Program terminated with signal 11, Segmentation fault.
#0 OPC::UA::iNu (rb=..., off=@0x7f0675c5429c, vSz=4 '\004') at libOPC_UA.cpp:511
in libOPC_UA.cpp

Файл дампа в приложении.

[Повідомлення редагувалось 1 раз(ів), останній раз 14.01.2014 в 11:48.]
Вкладений файл

crash_core.12115_Boiler_2014-01-13_19:04.txt (Тип файлу: text/plain, Розмір: 36.6 кілобайтів) — 1915 завантажень
Повідомлення створено: 14. 01. 2014 [12:08]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
"rxs5" wrote:

На OpenSCADA используется собственный модуль для сбора данных. Через OPC UA сервер данные предоставляются клиентам.
Были запущены клиенты UAExpert и IWS.
Такая связка проработала не более 4 часов и затем OpenSCADA ушла в crash_core.
С ошибкой
Program terminated with signal 11, Segmentation fault.
#0 OPC::UA::iNu (rb=..., off=@0x7f0675c5429c, vSz=4 '\004') at libOPC_UA.cpp:511
in libOPC_UA.cpp

Само по себе в этом месте оно падать не может поскольку везде закрыто мютексом, а значит кто-то портит образ памяти параллельно.
Не исключено, что Ваш собственный модуль.
Если ресурсоёмкость (CPU) конфигурации не очень высокая то нужно такое ловить через valgrind.

Как я ранее показывал у меня система проработала 32 часа!

Learn, learn and learn better than work, work and work.
Повідомлення створено: 14. 01. 2014 [12:24]
rxs5
Дмитрий Лыков
In tech support
Автор теми
Зареєстрован(а) с: 06.11.2013
Повідомлення: 205
"roman" wrote:

Само по себе в этом месте оно падать не может поскольку везде закрыто мютексом, а значит кто-то портит образ памяти параллельно.
Не исключено, что Ваш собственный модуль.
Если ресурсоёмкость (CPU) конфигурации не очень высокая то нужно такое ловить через valgrind.

Как я ранее показывал у меня система проработала 32 часа!

Роман, помните, что я тоже указывал, что у меня работает стабильно с UAExpert ? Хотя тоже свой модуль используется.
Пока вижу такие предположения.
OpenSCADA OPC UA + UAExpert - работает стабильно.
OpenSCADA OPC UA + UAExpert + IWS - падает, наблюдается точно 2-й раз, возможно 3-й. Да, можно попытаться изолировать до варианта OpenSCADA OPC UA + IWS, но пока не дошел до этого.
Повідомлення створено: 14. 01. 2014 [12:54]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
"rxs5" wrote:

Роман, помните, что я тоже указывал, что у меня работает стабильно с UAExpert ? Хотя тоже свой модуль используется.

Конфигурация OpenSCADA и перечень опрашиваемых параметров тот-же?

"rxs5" wrote:

Пока вижу такие предположения.
OpenSCADA OPC UA + UAExpert - работает стабильно.
OpenSCADA OPC UA + UAExpert + IWS - падает, наблюдается точно 2-й раз, возможно 3-й. Да, можно попытаться изолировать до варианта OpenSCADA OPC UA + IWS, но пока не дошел до этого.

А UAExpert между OpenSCADA и IWS к чему, или они вместе опрашивают?

Вышлите отчёт при следующем падении! Если там кто-то портит память то мала вероятность попадания в тоже место.

Для локализации виновника такой проблемы, кроме варианта с valgrind, можно разделить конфигурацию OpenSCADA на сервер опроса вашим модулем и сервер OPC-UA, с отражением источника данных через DAQGate.

Learn, learn and learn better than work, work and work.
Повідомлення створено: 14. 01. 2014 [13:23]
rxs5
Дмитрий Лыков
In tech support
Автор теми
Зареєстрован(а) с: 06.11.2013
Повідомлення: 205
"roman" wrote:

Конфигурация OpenSCADA и перечень опрашиваемых параметров тот-же?

Да, все тоже самое. Проект OpenSCADA настроен и не меняется.

"roman" wrote:

А UAExpert между OpenSCADA и IWS к чему, или они вместе опрашивают?

Вышлите отчёт при следующем падении! Если там кто-то портит память то мала вероятность попадания в тоже место.

Для локализации виновника такой проблемы, кроме варианта с valgrind, можно разделить конфигурацию OpenSCADA на сервер опроса вашим модулем и сервер OPC-UA, с отражением источника данных через DAQGate.

UExpert - является клиентом OPC UA для сервера OPC UA в OpenSCADA
Параллельно работает IWS, который также - является клиентом OPC UA для сервера OPC UA в OpenSCADA.
Запустил недавно на повторный тест.

[Повідомлення редагувалось 1 раз(ів), останній раз 14.01.2014 в 13:24.]
Повідомлення створено: 14. 01. 2014 [16:43]
rxs5
Дмитрий Лыков
In tech support
Автор теми
Зареєстрован(а) с: 06.11.2013
Повідомлення: 205
Краха в этот раз не было. Но было зависание OpenSCADA.
Описание условий в сообщении от 14. 01. 2014 [16:33] на странице http://oscada.org/ru/forum/posts//opc_ua//8/
После того, как увидел более 800 сброшенных соединений, перешел на вкладку Debug проекта. И в это время OpenSCADA перестала отвечать.
Во время зависания OpenSCADA у нее было высокое потребление ресурсов, есть скриншоты.
Подождал несколько минут, и убил процесс.
Краш репорта в папке проекта не появилось.

Думаю, что зависание связано с крахом в 1-м сообщении, поскольку в 1-м случае тоже завершался демонстрационный период IWS (и значит увеличивалось число соединений сброшенных по лимиту).
Вкладений файл

Снимок.PNG (Тип файлу: image/png, Розмір: 70.13 кілобайтів) — 1957 завантажень
Снимок1.PNG (Тип файлу: image/png, Розмір: 35.23 кілобайтів) — 1848 завантажень
Повідомлення створено: 14. 01. 2014 [17:30]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
"rxs5" wrote:

Во время зависания OpenSCADA у нее было высокое потребление ресурсов, есть скриншоты.

Каких ресурсов?

"rxs5" wrote:

Подождал несколько минут, и убил процесс.
Краш репорта в папке проекта не появилось.

Убивать нужно сигналом SIGSEGV иначе корка просто не создастся!

"rxs5" wrote:

Думаю, что зависание связано с крахом в 1-м сообщении, поскольку в 1-м случае тоже завершался демонстрационный период IWS (и значит увеличивалось число соединений сброшенных по лимиту).

Каким крахом, я там ничего похожего на падение не увидел!

И я просил Вас позакрывать IWS и UAExpert, чтобы выяснить, кто плодит подключения!

Learn, learn and learn better than work, work and work.
Повідомлення створено: 15. 01. 2014 [16:35]
rxs5
Дмитрий Лыков
In tech support
Автор теми
Зареєстрован(а) с: 06.11.2013
Повідомлення: 205
"roman" wrote:
Вышлите отчёт при следующем падении!

Еще один отчет во вложении с
Program terminated with signal 11, Segmentation fault.
#0 OPC::UA::iNu (rb=..., off=@0x7f3478df829c, vSz=4 '###Quote_BUFFER_MARKER_MMCMS###4') at libOPC_UA.cpp:511
in libOPC_UA.cpp


"roman" wrote:

Каких ресурсов?

80% CPU, 1,3 Gb Memory. Есть скриншоты в пред. сообщении.
"roman" wrote:
И я просил Вас позакрывать IWS и UAExpert, чтобы выяснить, кто плодит подключения!

Не понял идеи. Если будут закрыты клиенты, то и подключений конечно не будет.

[Повідомлення редагувалось 3 раз(ів), останній раз 15.01.2014 в 16:38.]
Вкладений файл

crash_core.27193_Boiler_2014-01-15_17:30.txt (Тип файлу: text/plain, Розмір: 38.74 кілобайтів) — 2337 завантажень
Повідомлення створено: 15. 01. 2014 [18:13]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
"rxs5" wrote:

"roman" wrote:
Вышлите отчёт при следующем падении!

Еще один отчет во вложении с
Program terminated with signal 11, Segmentation fault.
#0 OPC::UA::iNu (rb=..., off=@0x7f3478df829c, vSz=4 '###Quote_BUFFER_MARKER_MMCMS###4') at libOPC_UA.cpp:511
in libOPC_UA.cpp


Место падения повторилось, тенденция однако.
Изменил алгоритм удаления элемента в цикле обхода очереди. Хотя это и был принятый оборот, но может для deque он не совсем рабочий.
Кстати на удаление в этом цикле в UAExpert он не попадает поскольку тот всегда их квитирует и они удаляются отдельно.

"rxs5" wrote:

80% CPU, 1,3 Gb Memory. Есть скриншоты в пред. сообщении.

Ничего себе. В модуле OPC_UA течь так нечему.

"rxs5" wrote:

Не понял идеи. Если будут закрыты клиенты, то и подключений конечно не будет.

Вовсе не конечно, а только если потоки обслуживания этих подключений сами внутри не висят.

Learn, learn and learn better than work, work and work.
Повідомлення створено: 17. 01. 2014 [14:51]
rxs5
Дмитрий Лыков
In tech support
Автор теми
Зареєстрован(а) с: 06.11.2013
Повідомлення: 205
"roman" wrote:

Место падения повторилось, тенденция однако.
Изменил алгоритм удаления элемента в цикле обхода очереди. Хотя это и был принятый оборот, но может для deque он не совсем рабочий.
Кстати на удаление в этом цикле в UAExpert он не попадает поскольку тот всегда их квитирует и они удаляются отдельно.


И сегодня снова
Program terminated with signal 11, Segmentation fault.
#0 OPC::UA::iNu (rb=..., off=@0x7f4ac97f929c, vSz=4 '###Quote_BUFFER_MARKER_MMCMS###4') at libOPC_UA.cpp:511
in libOPC_UA.cpp

Файл дампа во вложении.

Кстати, уже второй день, вместо дампов с именем
crash_core.1095_Boiler_2014-01-09_17:37.txt
формируются дампы вида
core.18115_Boiler_2014-01-17_16:28.crash
Это с чем может быть связано ?

Последние строки из консоли:
JAVASCRIPT
Missing separate debuginfo for
Try: yum --disablerepo='*' --enablerepo='*-debug*' install /usr/lib/debug/.build-id/63/af03644fcb8724947b123e1677f06ee050a02b
511     libOPC_UA.cpp: No such file or directory.
Core dump process for back trace purchase to file core.20749_Boiler_2014-01-16_17_18.crash_Boiler_2014-01-17_16:28.crash
"/home/Dmitry-L/.openscada/Boiler/core.20749_Boiler_2014-01-16_17_18.crash" is not a core dump: File format not recognized


И еще можно попросить в формате имени файла заменить : например на _ (для совместимости файлов отчета с win системами).

"roman" wrote:

"rxs5" wrote:

Не понял идеи. Если будут закрыты клиенты, то и подключений конечно не будет.

Вовсе не конечно, а только если потоки обслуживания этих подключений сами внутри не висят.

Что видел: сначала было 3 клиента (IWS, UAExpert, контроллер OpenSCADA), затем 2 отключил (IWS, контроллер OpenSCADA), однако в свойствах OPCUA входящего сокета было 2 открытых. Проверял спустя 5-10 минут, хотя должны были закрыться уже 2 из 3.

[Повідомлення редагувалось 6 раз(ів), останній раз 17.01.2014 в 15:17.]
Вкладений файл

core.18115_Boiler_2014-01-17_16_28.crash (Тип файлу: application/octet-stream, Розмір: 36.51 кілобайтів) — 1505 завантажень



21465