[omniORB] Server Shutdown on multi-processor machines

Sharma, Ramesh ramesh.sharma at intel.com
Thu Mar 25 21:47:56 GMT 2004


I looked into it little further and seems like the problem is while
destroying the omni_mutex

 

++++++++++++++++++++++ posix.cc ++++++

omni_mutex::~omni_mutex(void)

{

    THROW_ERRORS(pthread_mutex_destroy(&posix_mutex));

}

++++++++++++++++

 

Looks like signal is raised from here and my signal handler catches it
and reports that as failure. Looks like some weird problem in
multithreaded environment. Any suggestions on getting around it will be
really appreciated.

 

Thanks,

Ramesh

-----Original Message-----
From: omniorb-list-bounces at omniorb-support.com
[mailto:omniorb-list-bounces at omniorb-support.com] On Behalf Of Sharma,
Ramesh
Sent: Thursday, March 25, 2004 3:20 PM
To: omniorb-list at omniorb-support.com
Subject: [omniORB] Server Shutdown on multi-processor machines

 

Hi,

 

I am having following problem with CORBA 4.0.3 on Red-hat linux 7.1
(client is compiled using gcc3.2 and server is compiled using gcc2.95.3
due to some avoidable reasons).

 

1.      Things work fine on a machine which is single processor.

2.      Things don't work on multiprocessors machines. I  get a SIGSEGV
while shutting down server.  Below is the segment of the trace I got

 

+++++++++++++++++++++++++++++++++++++++++++++++++++++++

0000 0000 0000 0000                     ........

omniORB: POA(child) etherealising object root/child<0> (deactivating).

omniORB: omniRemoteIdentity deleted.

omniORB: ObjRef(IDL:BlastSim/FaultSimFactory:1.0) -- deleted.

omniORB: Preparing to shutdown ORB.

omniORB: Destroying POA(RootPOA).

omniORB: Destroying POA(child).

omniORB: Deactivating all POA(child)'s objects.

omniORB: Waiting for requests to complete on POA(child).

omniORB: Requests on POA(child) completed.

omniORB: Etherealising POA(child)'s objects.

omniORB: Destruction of POA(child) complete.

omniORB: Deactivating all POA(RootPOA)'s objects.

omniORB: Waiting for requests to complete on POA(RootPOA).

omniORB: Requests on POA(RootPOA) completed.

omniORB: Etherealising POA(RootPOA)'s objects.

omniORB: Stopping serving incoming endpoints.

omniORB: throw giopStream::CommFailure from
giopStream.cc:828(0,NO,COMM_FAILURE_UnMarshalArguments)

omniORB: giopServer waits for completion of rendezvousers and workers

User time = 0:00:00(0) System time = 0:00:00(0) Memory usage =
4.18MDefault signal handler received SIGSEGV

 

Same exception gets thrown on both machines but on single processor
machine the exception gets handled and server shuts down gracefully. I
am not sure why on multi-processor machines it is behaving differently.
Is it the compiler version which might be making difference?

 

Has anybody something like this?

 

Ramesh 

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20040325/6e5f3d3d/attachment-0001.htm


More information about the omniORB-list mailing list