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

[BugFixed] core_crash_bad_alloc


Автор Сообщение
Сообщение создано: 16. 01. 2014 [15:38]
rxs5
Дмитрий Лыков
In tech support
Создатель темы
Зарегистрирован(а) с: 06.11.2013
Сообщения: 205
Еще один dump.
Работал OPC UA сервер, и было 2 клиента как обычно, шел обмен (видно по логу). И вдруг "terminate called after throwing an instance of 'std::bad_alloc' "
Лог из консоли
0|/sub_Transport/mod_Sockets/in_OPCUA_4848/ | Socket write message '256'.
0|/sub_Protocol/mod_OPC_UA/ | MSG Req
0|/sub_Protocol/mod_OPC_UA/ | MSG Resp
0|/sub_Transport/mod_Sockets/in_OPCUA_4848/ | Socket write message '196'.
terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
7|/ | OpenSCADA is aborted!
/usr/bin/openscada_start: line 114: 20749 Aborted (core dumped) $pCmd $@
Program rezult: 134
Core dump process for back trace purchase to file core.20749_Boiler_2014-01-16_17:18.crash

И файл отчета во вложении.

[Сообщение редактировалось 1 раз(а), в последний раз 16.01.2014 в 15:39.]
Вложенный файл

core.20749_Boiler_2014-01-16_17_18.crash (Тип файла: application/octet-stream, Размер: 29.69 килобайт) — 1738 загрузок
Сообщение создано: 16. 01. 2014 [17:44]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
"rxs5" wrote:

terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc

Если памяти потреблял не много то наверное попытка прочитать "publish" запрос из пустой очереди, что исправил.

Learn, learn and learn better than work, work and work.
Сообщение создано: 19. 01. 2014 [13:23]
rxs5
Дмитрий Лыков
In tech support
Создатель темы
Зарегистрирован(а) с: 06.11.2013
Сообщения: 205
"roman" wrote:

"rxs5" wrote:

terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc

Если памяти потреблял не много то наверное попытка прочитать "publish" запрос из пустой очереди, что исправил.

Тестировал по условиям из соседней темы http://oscada.org/ru/forum/posts/otslezhivanie_oshibok/crash_core_c_libopc_uacpp/%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D1%8B/2/#pid6105

Без своего модуля. OPC UA сервер опрашивается 3-мя клиентами: UAExpert, IWS, контроллер Openscada.
Результат - bad_alloc
JAVASCRIPT
0|/sub_Transport/mod_Sockets/in_OPCUA_4848/ | Socket write message '161'.                                                  
0|/sub_Transport/mod_Sockets/in_OPCUA_4848/ | Socket received message '61' from '192.168.195.192'.                         
0|/sub_Protocol/mod_OPC_UA/ | MSG Req                                                                                      
terminate called after throwing an instance of 'std::bad_alloc'                                                            
  what():  std::bad_alloc                                                                                                  
7|/ | OpenSCADA is aborted!                                                                                                
/usr/bin/openscada_start: line 114:  6895 Aborted                 (core dumped) $pCmd $@                                   
Program rezult: 134                                                                                                        
Core dump process for back trace purchase to file core.18115

Файл отчета во вложении.

И по самим файлам отчета.
Кроме файла .crash еще создается файл .txt вида
core.5693_Boiler_2014-01-17_19:56.crash_Boiler_2014-01-17_19:59.crash_Boiler_2014-01-17_20:04.crash_Boiler_2014-01-17_20:09.crash_Boiler_2014-01-18_21:44.crash.txt
Размер которого 0 байт и этот файл имеет странное имя. Такое началось с 17.01.2014.
И в консоли тоже странный лог.
JAVASCRIPT
Program rezult: 134                                                                                                        
Core dump process for back trace purchase to file core.18115_Boiler_2014-01-17_16_28.crash_Boiler_2014-01-17_19:34.crash_Boiler_2014-01-17_19:55.crash_Boiler_2014-01-17_19:56.crash_Boiler_2014-01-17_19:59.crash_Boiler_2014-01-17_20:04.crash_Boiler_2014-01-17_20:09.crash_Boiler_2014-01-18_21:43.crash                                    
"/home/Dmitry-L/.openscada/Boiler/core.18115_Boiler_2014-01-17_16_28.crash_Boiler_2014-01-17_19:34.crash_Boiler_2014-01-17_19:55.crash_Boiler_2014-01-17_19:56.crash_Boiler_2014-01-17_19:59.crash_Boiler_2014-01-17_20:04.crash_Boiler_2014-01-17_20:09.crash" is not a core dump: File format not recognized                                  
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_Boiler_2014-01-17_19:34.crash_Boiler_2014-01-17_19:55.crash_Boiler_2014-01-17_19:56.crash_Boiler_2014-01-17_19:59.crash_Boiler_2014-01-17_20:04.crash_Boiler_2014-01-17_20:09.crash_Boiler_2014-01-18_21:44.crash      
/usr/bin/openscada_start: line 122: core.20749_Boiler_2014-01-16_17_18.crash_Boiler_2014-01-17_16:28.crash_Boiler_2014-01-17_19:34.crash_Boiler_2014-01-17_19:55.crash_Boiler_2014-01-17_19:56.crash_Boiler_2014-01-17_19:59.crash_Boiler_2014-01-17_20:04.crash_Boiler_2014-01-17_20:09.crash_Boiler_2014-01-18_21:44.crash: File name too long
Core dump process for back trace purchase to file core.31200_Boiler_2014-01-17_19:34.crash_Boiler_2014-01-17_19:55.crash_Boiler_2014-01-17_19:56.crash_Boiler_2014-01-17_19:59.crash_Boiler_2014-01-17_20:04.crash_Boiler_2014-01-17_20:09.crash_Boiler_2014-01-18_21:44.crash                                                                  
"/home/Dmitry-L/.openscada/Boiler/core.31200_Boiler_2014-01-17_19:34.crash_Boiler_2014-01-17_19:55.crash_Boiler_2014-01-17_19:56.crash_Boiler_2014-01-17_19:59.crash_Boiler_2014-01-17_20:04.crash_Boiler_2014-01-17_20:09.crash" is not a core dump: File format not recognized                                                                
Core dump process for back trace purchase to file core.5693_Boiler_2014-01-17_19:56.crash_Boiler_2014-01-17_19:59.crash_Boiler_2014-01-17_20:04.crash_Boiler_2014-01-17_20:09.crash_Boiler_2014-01-18_21:44.crash                                                                                                                               
"/home/Dmitry-L/.openscada/Boiler/core.5693_Boiler_2014-01-17_19:56.crash_Boiler_2014-01-17_19:59.crash_Boiler_2014-01-17_20:04.crash_Boiler_2014-01-17_20:09.crash" is not a core dump: File format not recognized                                                                                                                             
Core dump process for back trace purchase to file core.6895_Boiler_2014-01-18_21:44.crash                                                                               
Missing separate debuginfo for /usr/lib/liboscada.so.2

Можно это тоже поправить ?
Вложенный файл

core.6895_Boiler_2014-01-18_21.44.crash (Тип файла: application/octet-stream, Размер: 29.66 килобайт) — 1714 загрузок
Сообщение создано: 19. 01. 2014 [14:46]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
"rxs5" wrote:

Тестировал по условиям из соседней темы http://oscada.org/ru/forum/posts/otslezhivanie_oshibok/crash_core_c_libopc_uacpp/страницы/2/#pid6105

Так, а с памятью то что?
Ошибка выделения памяти обычно при её отсутствии!

"rxs5" wrote:

Core dump process for back trace purchase to file core.18115[/js]
Файл отчета во вложении.

Файл бесполезный, поскольку проблемный модуль стрипнутый (без отладочной информации) почему-то.

"rxs5" wrote:

Можно это тоже поправить ?

Исправил и выгрузил!

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



5115