Bug 1551 - Deadlock in the ORB
Summary: Deadlock in the ORB
Status: RESOLVED FIXED
Alias: None
Product: TAO
Classification: Unclassified
Component: ORB (show other bugs)
Version: 1.3.3
Hardware: All All
: P3 normal
Assignee: DOC Center Support List (internal)
URL:
Depends on:
Blocks:
 
Reported: 2003-07-11 14:55 CDT by Nanbor Wang
Modified: 2003-07-21 15:08 CDT (History)
2 users (show)

See Also:


Attachments
Test case.. (9.41 KB, application/octet-stream)
2003-07-11 14:58 CDT, Nanbor Wang
Details

Note You need to log in before you can comment on or make changes to this bug.
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.