[omniORB] omniORB 4.0.1 crash: pure virtual method call in giopServer.cc:973

Bastiaan Bakker bastiaan.bakker at lifeline.nl
Tue Sep 9 13:05:34 BST 2003


Hi,

I've some more results now: 
both on our production and test systems we see another problem which
most likely is another symptom of the same problem: the server leaks
sockets, roughly 1 per 100 connections.  
Testing with 'threadPerConnectionPolicy=1' made the socket leak
diappear. We haven't seen crashes anymore either, but it may be too
early say they won't occur with the thread per connection policy.
So far the problem looks like a race condition in connection cleanup
when using thread pools... 

Cheers,

Bastiaan
 
On Mon, 2003-09-08 at 17:13, Bastiaan Bakker wrote:
> Hi,
> 
> On our production systems we see occasional (about once every other day)
> crashes of an omniORB enabled server process. It looks like a race
> condition triggered by (omniORB) CORBA clients hard-closing their
> connections with the server process. A backtrace (included below)
> reveals that the server crashes due to invoking setSelectable(1) on an
> already deleted connection object in giopServer.cc:973.
> Unfortunately we haven't been able to reproduce the problem on our test
> systems and setting the traceLevel to a high valuable would
> prohibitively increase the load on the production system. 
> Does anyone have a clue what may be going wrong or in which direction to
> proceed to resolve this? 
> Thanks in advance for any help.
> 
> Regards,
> 
> Bastiaan Bakker
> LifeLine Networks bv 
> 
> 
> System info:
> single processor x86 RedHat Linux 7.3.
> server process dynamically linked with omniORB 4.0.1 and configured with
> 'threadPerConnectionPolicy=0'.
> 
> Backtrace from core dump:
> #0  0x42029331 in kill () from /lib/i686/libc.so.6
> #1  0x413f5bdb in raise () from /lib/i686/libpthread.so.0
> #2  0x4202a8c2 in abort () from /lib/i686/libc.so.6
> #3  0x40f3ee6b in __default_terminate () at ../../gcc/libgcc2.c:-1
> #4  0x40f3ee8a in __terminate () from /usr/lib/liblog4cpp.so.4
> #5  __pure_virtual () at ../../gcc/libgcc2.c:-1
> #6  0x402ad874 in omni::giopServer::notifyWkDone (this=0x809d8c8,
> w=0x419049d8, exit_on_error=false)
>     at giopServer.cc:973
> #7  0x402b09d7 in omni::giopWorker::real_execute (this=0x0) at
> giopWorker.cc:218
> #8  0x402b02af in omni::giopWorkerInfo::run (this=0x41bffa0c) at
> giopWorker.cc:100
> #9  0x402b035a in omni::giopWorker::execute (this=0x419049d8) at
> giopWorker.cc:114
> #10 0x40257ae6 in omniAsyncWorkerInfo::run (this=0x41bffa9c) at
> invoker.cc:182
> #11 0x40258756 in omniAsyncWorker::run (this=0x419137a0) at
> invoker.cc:133
> #12 0x4055e9bc in omni_thread_wrapper (ptr=0x419137a0) at posix.cc:425
> #13 0x413f2faf in pthread_start_thread () from /lib/i686/libpthread.so.0
> 
> 
> 
> 
> _______________________________________________
> omniORB-list mailing list
> omniORB-list at omniorb-support.com
> http://www.omniorb-support.com/mailman/listinfo/omniorb-list




More information about the omniORB-list mailing list