We are debugging a crash in an application that uses Ice 2.1.0 for Windows XP. When in debug mode, we get the following stack:
msvcr71d.dll!_NMSG_WRITE(int rterrnum=10) Line 195 C
msvcr71d.dll!abort() Line 44 + 0x7 C
msvcr71d.dll!_assert(const char * expr=0x1013eb44, const char * filename=0x1013eb30, unsigned int lineno=152) Line 306 C
ice21d.dll!IceInternal::ThreadPool::destroy() Line 152 + 0x2c C++
> ice21d.dll!Ice::ObjectAdapterI::waitForDeactivate( ) Line 282 C++
rgsender.exe!`HprCore::SessionIce::removeAdapter': :`2'::AdapterDeactivationThread::run() Line 397 + 0x31 C++
iceutil21d.dll!startHook(void * arg=0x011d41f0) Line 203 + 0x1d C++
msvcr71d.dll!_threadstartex(void * ptd=0x011b3ab8) Line 241 + 0xd C
kernel32.dll!77e7d28e()
ntdll.dll!77f589f2()
Also, in the same file (ThreadPool.cpp), we sometimes see an infinite loop where an exception is printed out at line 352 - this seems to be the product of ::select repeatedly failing. This occurs when we shut down sockets outside of the program or unplug network cables.
Do you have any suggestions/insights/ideas as to why this might be happening?

Reply With Quote