Bug 1551

Summary: Deadlock in the ORB
Product: TAO Reporter: Nanbor Wang <bala>
Component: ORBAssignee: DOC Center Support List (internal) <tao-support>
Status: RESOLVED FIXED    
Severity: normal CC: coryan, gan.deng
Priority: P3    
Version: 1.3.3   
Hardware: All   
OS: All   
Attachments: Test case..

Description Nanbor Wang 2003-07-11 14:55:18 CDT
This is an extension to bug 1482. The ORB can deadlock if one tries send
messages while handling exceptions in AMI. A test will be  attached shortly.
Thanks to Carlo for reporting the problem. 

The problem shows up when the following sequence of actions occur

- client after sending an AMI call tries to collect the reply
- peer dies. An event is waiting on the client's reactor indicating the death of
the peer.
- the client starts cleaning up and reaches
TAO_Transport::send_close_connection_notification ().
- the above call holds a lock and tries to clean up the  muxed strategy which in
turn delivers exception notification to the application.
- If the application tries sending out a message during exception notification
the application would deadlock trying to grab the lock which it already holds. 

There is a patch that Gan will integrate next week when we are at OMG's RTWS.
Comment 1 Nanbor Wang 2003-07-11 14:58:09 CDT
Created attachment 220 [details]
Test case..
Comment 2 gan.deng 2003-07-21 15:08:44 CDT
A work around has been added and here is the relevant ChangeLog entry:

TAO
-----
Tue Jul 15 10:18:07 2003  Gan Deng  <gan.deng@vanderbilt.edu>

Thanks again to Bala and Carlos O'Ryan and all other folks who helped with 
this.