Одна из моих программ в солярисе внезапно вылетает без следов в логах с SIGABRT
Ниже дамп ядра
threading model: multi-threaded
status: process terminated by SIGABRT (Abort)
C++ symbol demangling enabled
libc.so.1`_lwp_kill+0xa()
libc.so.1`raise+0x19()
libc.so.1`abort+0x90()
libCrun.so.1`void __Cimpl::default_terminate+9()
libCrun.so.1`void __Cimpl::ex_terminate+0x25()
libCrun.so.1`void __Crun::ex_throw+0x26()
libTAO.so.2.0.7`void TAO_ORB_Core::check_shutdown+0x4c()
0x319c9a8()
Похоже, что с кодом нет проблем, так как процесс внезапно завершает работу в режиме ожидания.
Тогда я решил посмотреть системный журнал, и нашел следующее сообщение
[ID 702911 auth.error] [22216] Run idle timeout reached (32400 seconds)
Есть идеи, почему это происходит?
SIGABRT повышен, потому что у вас есть необработанное исключение. Трассировка стека говорит вам, откуда возникло исключение:
void TAO_ORB_Core::check_shutdown()
документация поскольку эта функция говорит, что выдает исключение, если ACE ORB выключился, что означает, что программа должна завершиться. Таким образом, возникает вопрос: почему логика вашего приложения закрывает ORB, когда он достигает этого «тайм-аута»? Это то, что вам нужно изучить в своем приложении — я не думаю, что у нас есть источник для этого.