The program is based on Ice 3.10 and I using vc6 as my compiler,so stlport 4.6 is also a component .
After running for several days,the program do not responsed any command.So I manually crash the relative process using drwtsn32 .accroding to the dump log of drwtsn I found that the program is blocked.
And here are some call stack as below:
[call stack 1]
kernel32!Sleep+0xf
stlport_vc646!_STL::__node_alloc<1,0>::_M_allocate +0x14f
stlport_vc646!_STL::__node_alloc<1,0>::allocate+0x 27
WeiwooService!_STL::allocator<Ice::Identity>::allo cate+0x1c (CONV: thiscall)
....
[call stack 2]
kernel32!Sleep+0xf
stlport_vc646!_STL::__node_alloc<1,0>::_M_allocate +0x14f
ice31!Ice::ConnectionI::run+0x3fc9
ice31!Ice::ConnectionI::run+0x3ed2
ice31!Ice::ConnectionI::run+0x3d6f
...
[call stack 3]
kernel32!Sleep+0xf
stlport_vc646!_STL::__node_alloc<1,0>::_M_dealloca te+0x13a
freeze31!Freeze::NoSuchElementException::ice_print +0x1e50
...
[call stack 4]
kernel32!Sleep+0xf
stlport_vc646!_STL::__stl_debug_engine<bool>::_Ter minate+0x127
stlport_vc646!_STL::basic_string<char,_STL::char_t raits<char>,_STL::allocator<char> >::basic_string<char,_STL::char_traits<char>,_STL: :allocator<char> >+0xa3
ice31!Ice::ProtocolException::ProtocolException+0x 3f
ice31!Ice::ConnectionI::message+0xce
There are at least 6+ thread blocked at the function '::__node_alloc<1,0>::_M_allocate' .So I think that's why the program doesn't respond any command.
I also found a post at the stlport's forum which is about stlport deadlock.
STLport: Discussion Forum
BTW: according to service log,I found that there was a exception threw out before the program blocked.But I don't think this exception can cause the stlport block!
Thank you very much for giving me some tips on this issue!

Reply With Quote
