[omniORB] Server Shutdown on multi-processor machines

Sharma, Ramesh ramesh.sharma at intel.com
Fri Mar 26 17:51:45 GMT 2004


It seems almost impossible for me to move to gcc3.2 for my server, i
there is a work around (even if it is dirty one) which can be used to
fix the mult-threading problem on multiprocessor machines using
gcc-2.95.3. 

 

-----Original Message-----
From: omniorb-list-bounces at omniorb-support.com
[mailto:omniorb-list-bounces at omniorb-support.com] On Behalf Of Serguei
Kolos
Sent: Friday, March 26, 2004 2:02 AM
To: omniorb-list at omniorb-support.com
Subject: Re: [omniORB] Server Shutdown on multi-processor machines

 

Hi 
I have similar problem using gcc-2.95.2. 
With gcc3.2 this never happens independently of which machine
I'm using, i.e. single processor or dual.

Cheers,
Sergei

Sharma, Ramesh wrote:



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 

 

 



  _____  



 
_______________________________________________
omniORB-list mailing list
omniORB-list at omniorb-support.com
http://www.omniorb-support.com/mailman/listinfo/omniorb-list
  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20040326/20acc846/attachment.htm


More information about the omniORB-list mailing list